ホームページ >データベース >mysql チュートリアル >MySQL で 4 つのテーブルを効率的に結合してレコードの重複を避けるには?

MySQL で 4 つのテーブルを効率的に結合してレコードの重複を避けるには?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-19 19:49:11378ブラウズ

How to Efficiently Join Four Tables in MySQL to Avoid Duplicate Records?

INNER JOIN を使用した MySQL の複数のテーブルの結合

MySQL などのリレーショナル データベースを使用する場合、テーブルを結合すると、複数のテーブルからデータを取得できます。共通の列に基づいたテーブル。このチュートリアルでは、orders、products_pricing、products の 3 つのテーブルを結合するプロセスを説明します。

問題ステートメント

特定のユーザーに関連する製品を取得し、各製品へのハイパーリンク、4 番目のテーブル、リストを結合する必要があります。ただし、現在のクエリはリスト テーブルから重複したレコードを返します。

解決策

この問題を解決するには、クエリを次のように変更します。

SELECT 
  p.id,
  p.name,
  l.url,
  o.user_id,
  o.pricing_id
FROM orders AS o
INNER JOIN products_pricing AS pp ON o.pricing_id  = pp.id
INNER JOIN products         AS  p ON pp.product_id = p.id
INNER JOIN listings         AS  l ON l.user_id = o.user_id
WHERE o.user_id ='7' 
  AND l.id = 233 
  AND l.url = 'test.com';

説明:

  • l.id = 233 および l.url = 「test.com」は、結果を ID 233 および URL test.com の特定のリストに制限する追加条件です。
  • INNER JOIN 句により、4 つのテーブルすべてから一致するレコードのみが返されることが保証されます。

出力

提供されたサンプル データの場合、更新されたクエリ戻り値:

| ID |名前 | URL |ユーザーID | PRICING_ID |

| 33 |テスト製品 |テスト.com | 7 | 37 |

この出力には、ユーザー ID 7 の特定のユーザーの製品 ID、名前、リスト URL、ユーザー ID、価格設定 ID が含まれます。

以上がMySQL で 4 つのテーブルを効率的に結合してレコードの重複を避けるには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。