我們如何區分 MySQL CROSS JOIN 和 INNER JOIN?
我們只能根據聯接謂詞(即指定的條件)來區分 MySQL CROSS JOIN 和 INNER JOIN。在為 INNER JOIN 編寫查詢時,我們需要指定條件,但相反,在為 CROSS JOIN 編寫查詢時,我們不需要指定條件。為了理解這一點,我們舉例說明兩個名為 tbl_1 和 tbl_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)
現在,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)
現在,如果我們在不指定條件的情況下編寫上述查詢,則它將變為 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)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP