MySQL CROSS JOIN と INNER JOIN は、接続述語 (つまり、指定された条件) に基づいてのみ区別できます。 INNER JOIN クエリを作成する場合は条件を指定する必要がありますが、逆に CROSS JOIN クエリを作成する場合は条件を指定する必要はありません。これを理解するために、tbl_1 と tbl_2 という名前の 2 つのテーブルの例を考えてみましょう。これらのテーブルには次のデータがあります。
mysql> Select * from tbl_1; +----+--------+ | Id | Name | +----+--------+ | 1 | Gaurav | | 2 | Rahul | | 3 | Raman | | 4 | Aarav | +----+--------+ 4 rows in set (0.00 sec) mysql> Select * from tbl_2; +----+---------+ | Id | Name | +----+---------+ | A | Aarav | | B | Mohan | | C | Jai | | D | Harshit | +----+---------+ 4 rows in set (0.00 sec)
Now、INNER JOIN のクエリは次のようになります。
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+----+ | id | id | +----+----+ | 4 | A | +----+----+ 1 row in set (0.00 sec)
Now , 条件を指定せずに上記のクエリを書くと、CROSS JOINになってしまいます。無条件クエリは次のとおりです -
mysql> Select tbl_1.id, tbl_2.id FROM tbl_1 JOIN tbl_2; +----+----+ | id | id | +----+----+ | 1 | A | | 2 | A | | 3 | A | | 4 | A | | 1 | B | | 2 | B | | 3 | B | | 4 | B | | 1 | C | | 2 | C | | 3 | C | | 4 | C | | 1 | D | | 2 | D | | 3 | D | | 4 | D | +----+----+ 16 rows in set (0.00 sec)
以上がMySQL CROSS JOIN と INNER JOIN はどのように区別すればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。