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';
説明:
出力
提供されたサンプル データの場合、更新されたクエリ戻り値:
| 33 |テスト製品 |テスト.com | 7 | 37 |
この出力には、ユーザー ID 7 の特定のユーザーの製品 ID、名前、リスト URL、ユーザー ID、価格設定 ID が含まれます。
以上がMySQL で 4 つのテーブルを効率的に結合してレコードの重複を避けるには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。