Nous ne pouvons faire la différence entre MySQL CROSS JOIN et INNER JOIN qu'en fonction du prédicat de jointure (c'est-à-dire la condition spécifiée). Lors de l'écriture d'une requête INNER JOIN, nous devons spécifier les conditions, mais à l'inverse, lors de l'écriture d'une requête CROSS JOIN, nous n'avons pas besoin de spécifier les conditions. Pour le comprendre, prenons l'exemple de deux tables nommées tbl_1 et tbl_2, qui ont les données suivantes-
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)
Maintenant, la requête pour INNER JOIN peut être la suivante-
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)
Maintenant, si on écrit sans préciser la condition Le requête ci-dessus, elle deviendra alors un CROSS JOIN. La requête inconditionnelle est la suivante -
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)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!