Love beautiful code? We do too.
LEFT JOIN trong SQL trả về tất cả các hàng từ bảng bên trái, ngay cả khi không có so khớp nào trong bảng bên phải. Nghĩa là, nếu mệnh đề ON so khớp với 0 bản ghi trong bảng bên phải, thì LEFT JOIN sẽ vẫn trả về một hàng trong kết quả, nhưng với NULL trong mỗi cột từ bảng bên phải.
Điều này nghĩa là LEFT JOIN trả về tất cả giá trị từ bảng bên trái, cộng với các giá trị được so khớp từ bảng bên phải hoặc NULL trong trường hợp không có so khớp nào.
Cú pháp cơ bản của LEFT JOIN trong SQL như sau:
SELECT bang1.cot1, bang2.cot2...
FROM bang1
LEFT JOIN bang2
ON bang1.field_chung = bang2.field_chung;
Giả sử có hai bảng, bảng SINHVIEN có các bản ghi sau:
+----+---------+-----+-----------+--------+
| ID | TEN | TUOI| KHOAHOC | HOCPHI |
+----+---------+-----+-----------+---------+
| 1 | Hoang | 21 | CNTT | 4000000 |
| 2 | Viet | 19 | DTVT | 3000000 |
| 3 | Thanh | 18 | KTDN | 4000000 |
| 4 | Nhan | 19 | CK | 4500000 |
| 5 | Huong | 20 | TCNH | 5000000 |
+----+---------+-----+-----------+---------+
Bảng MUONSACH có các bản ghi sau:
+-----+---------------------+-------------+--------+
|STT | NGAY | SINHVIEN_ID | SOTIEN |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 | 3 | 320 |
| 100 | 2009-10-08 00:00:00 | 3 | 250 |
| 101 | 2009-11-20 00:00:00 | 2 | 280 |
| 103 | 2008-05-20 00:00:00 | 4 | 290 |
+-----+---------------------+-------------+--------+
Bây giờ, chúng ta kết hợp hai bảng bởi sử dụng LEFT JOIN trong SQL như sau:
SQL> SELECT ID, TEN, SOTIEN, NGAY
FROM SINHVIEN
LEFT JOIN MUONSACH
ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID;
Ví dụ trên sẽ cho kết quả:
+----+----------+--------+---------------------+
| ID | TEN | SOTIEN | NGAY |
+----+----------+--------+---------------------+
| 1 | Hoang | NULL | NULL |
| 2 | Viet | 280 | 2009-11-20 00:00:00 |
| 3 | Thanh | 320 | 2009-10-08 00:00:00 |
| 3 | Thanh | 250 | 2009-10-08 00:00:00 |
| 4 | Nhan | 290 | 2008-05-20 00:00:00 |
| 5 | Huong | NULL | NULL |
+----+----------+--------+---------------------+
Hoclaptrinh.vn © 2017
From Coder With
Unpublished comment
Viết câu trả lời