首頁  >  文章  >  資料庫  >  如果我在寫 RIGHT JOIN 或 LEFT JOIN 查詢時不使用關鍵字“RIGHT”或“LEFT”,MySQL 會傳回什麼?

如果我在寫 RIGHT JOIN 或 LEFT JOIN 查詢時不使用關鍵字“RIGHT”或“LEFT”,MySQL 會傳回什麼?

WBOY
WBOY轉載
2023-08-25 18:05:061178瀏覽

如果我在编写 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的查詢並相應地傳回結果。

以上是如果我在寫 RIGHT JOIN 或 LEFT JOIN 查詢時不使用關鍵字“RIGHT”或“LEFT”,MySQL 會傳回什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除