Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

MySQL xử lý như thế nào khi bỏ từ khóa RIGHT/LEFT trong JOIN?

Khi không sử dụng từ khóa RIGHT hoặc LEFT trong truy vấn JOIN, MySQL sẽ mặc định hiểu đó là INNER JOIN. Chỉ khác biệt giữa RIGHT JOIN, LEFT JOIN và INNER JOIN chính là từ khóa RIGHT hoặc LEFT.

Dữ liệu mẫu

mysql> SELECT * FROM tbl_1;
+----+--------+
| Id | Name   |
+----+--------+
| 1  | Gaurav |
| 2  | Rahul  |
| 3  | Raman  |
| 4  | Aarav  |
+----+--------+

mysql> SELECT * FROM tbl_2;
+----+---------+
| Id | Name    |
+----+---------+
| A  | Aarav   |
| B  | Mohan   |
| C  | Jai     |
| D  | Harshit |
+----+---------+

1. RIGHT JOIN có từ khóa RIGHT

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  |
+------+----+

2. JOIN không có từ khóa RIGHT (mặc định 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  |
+----+----+

3. LEFT JOIN có từ khóa LEFT

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. JOIN không có từ khóa LEFT (mặc định 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  |
+----+----+

Kết luận: Nếu bỏ từ khóa LEFT/RIGHT, MySQL tự động chuyển thành INNER JOIN, chỉ trả về các hàng khớp nhau.