Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL trả về điều gì nếu tôi không sử dụng từ khóa ‘RIGHT’ hoặc ‘LEFT’ trong khi viết truy vấn cho RIGHT JOIN hoặc LEFT JOIN?


Trong cả hai trường hợp, tức là không sử dụng từ khóa ‘RIGHT’ hoặc ‘LEFT’ trong truy vấn, MySQL sẽ trả về kết quả bằng cách coi nó là truy vấn INNER JOIN. Đó là bởi vì sự khác biệt duy nhất giữa RIGHT, LEFT và INNER JOIN là từ khóa RIGHT hoặc LEFT. Để hiểu nó, chúng tôi đang lấy ví dụ về hai bảng có tên tbl_1 và tbl_2 đang có dữ liệu sau -

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)

Bây giờ, truy vấn cho RIGHT JOIN với từ khóa RIGHT có thể như sau -

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)

Bây giờ, trong truy vấn sau, chúng tôi không sử dụng từ khóa 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)

Từ tập kết quả trên, chúng ta có thể nhận thấy sự khác biệt là không sử dụng từ khóa 'RIGHT', MySQL sẽ lấy nó làm truy vấn cho INNER JOIN và trả về kết quả tương ứng.

Bây giờ, truy vấn cho LEFT JOIN với từ khóa LEFT có thể như sau -

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)

Bây giờ, trong truy vấn sau, chúng tôi không sử dụng từ khóa 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)

Từ tập kết quả ở trên, chúng ta có thể nhận thấy sự khác biệt là nếu không sử dụng từ khóa ‘LEFT’, MySQL sẽ lấy nó làm truy vấn cho INNER JOIN và trả về kết quả tương ứng.