内部結合を使用した MySQL での複数のテーブルの結合
MySQL では、INNER JOIN ステートメントを使用して、共通のコラム。複数テーブルの結合を実行するには、次の構文を使用できます。
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column [...] INNER JOIN table_n ON table_n-1.column = table_n.column;
次のシナリオを考えてみましょう。4 つのテーブルがあります:
リスト テーブルから対応する URL を使用して、特定のユーザー (user_id = 7) のすべての製品と各製品のハイパーリンクを取得したいとします。
オリジナルクエリ:
SELECT * FROM orders INNER JOIN products_pricing ON orders.pricing_id = products_pricing.id INNER JOIN products ON products_pricing.product_id = products.id WHERE orders.user_id = '7';
このクエリは、ID 7 のユーザーのすべての製品を返しますが、各製品の URL は含まれません。
改訂されたクエリ:
各製品の URL を含めるには、リスト テーブルに別の INNER JOIN を追加できます。
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';
このクエリでは、 have:
この改訂されたクエリを使用すると、指定したユーザーの製品と、リンク用の対応する URL を正常に取得できます。
以上がMySQL で複数のテーブルを効率的に結合して関連データを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。