ホームページ >データベース >mysql チュートリアル >複数のテーブルに対する SQL INNER JOIN が結果を返さないのはなぜですか?
SQL 内部 JOIN を使用した複数のテーブルの結合
リレーショナル データベースを使用する場合、多くの場合、複数のテーブルのデータを結合する必要があります。 SQL は、この目的のために INNER JOIN 演算子を提供します。
2 つのテーブルで内部結合を実行するには、主キーと外部キーの間の等価条件を指定します。例:
SELECT * FROM table1 INNER JOIN table2 ON table1.primaryKey = table2.table1Id;
このクエリは、一致する主キーと外部キーを持つ両方のテーブルからすべての行を返します。
これを複数のテーブルに拡張するには、単に追加の INNER JOIN 句を同じ外部キーと主キーの等価条件を使用したクエリ。ただし、次のコードは結果を返しません:
SELECT * FROM table1 INNER JOIN table2 INNER JOIN table3 ON table1.primaryKey = table2.table1Id = table3.table1Id;
この理由は、等価条件をテーブルごとに個別に指定する必要があるためです。正しい構文は次のとおりです:
SELECT * FROM table1 INNER JOIN table2 ON table1.primaryKey = table2.table1Id INNER JOIN table3 ON table1.primaryKey = table3.table1Id;
このクエリは、table2 と table3 に一致する主キーと外部キーを持つ table1 のすべての行を返します。
以上が複数のテーブルに対する SQL INNER JOIN が結果を返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。