如果在編寫 RIGHT JOIN 或 LEFT JOIN 查詢時不使用關鍵字“RIGHT”或“LEFT”,MySQL 會返回什麼結果?
在這兩種情況下,即在查詢中不使用“RIGHT”或“LEFT”關鍵字時,MySQL 將結果視為 INNER JOIN 查詢。這是因為 RIGHT、LEFT 和 INNER JOIN 之間的唯一區別在於 RIGHT 或 LEFT 關鍵字。為了理解這一點,我們以名為 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)
現在,使用關鍵字 RIGHT 的 RIGHT JOIN 查詢如下所示:
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 RIGHT JOIN tbl_2 ON tbl_1.name = tbl_2.name; +------+----+ | id | id | +------+----+ | 4 | A | | NULL | B | | NULL | C | | NULL | D | +------+----+ 4 rows in set (0.00 sec)
現在,在下面的查詢中,我們不使用關鍵字 RIGHT:
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)
從上面的結果集可以看出,如果不使用關鍵字“RIGHT”,MySQL 會將其視為 INNER JOIN 查詢並相應地返回結果。
現在,使用關鍵字 LEFT 的 LEFT JOIN 查詢如下所示:
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+------+ | id | id | +----+------+ | 1 | NULL | | 2 | NULL | | 3 | NULL | | 4 | A | +----+------+ 4 rows in set (0.02 sec)
現在,在下面的查詢中,我們不使用關鍵字 LEFT:
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)
從上面的結果集可以看出,如果不使用關鍵字“LEFT”,MySQL 會將其視為 INNER JOIN 查詢並相應地返回結果。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP