FULL JOIN trong SQL kết hợp kết quả của cả hai loại LEFT và RIGHT JOIN.

Bảng được kết hợp sẽ chứa tất cả bản ghi từ cả hai bảng, và điền vào đó giá trị NULL cho các giá trị không so khớp nhau.

Cú pháp

Cú pháp cơ bản của FULL JOIN trong SQL như sau:


SELECT bang1.cot1, bang2.cot2...
FROM bang1
FULL JOIN bang2
ON bang1.field_chung = bang2.field_chung;

```Ví dụ
-----

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 FULL JOIN trong SQL như sau:

SQL> SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN FULL 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                |
|    3 | Thanh  |   320 | 2009-10-08 00:00:00 |
|    3 | Thanh  |   250 | 2009-10-08 00:00:00 |
|    2 | Viet   |   280 | 2009-11-20 00:00:00 |
|    4 | Nhan |   290 | 2008-05-20 00:00:00 |
+------+----------+--------+---------------------+

```Nếu Database của bạn không hỗ trợ FULL JOIN (chẳng hạn như MySQL), thì bạn có thể sử dụng mệnh đề **UNION ALL** để kết hợp hai JOIN như sau:

SQL> SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN LEFT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID UNION ALL SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN RIGHT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID

```- - - - - -

[Trang trước](../sql/right_join_trong_sql.jsp)
[PDF](../sql/pdf/full_join_trong_sql.pdf "FULL JOIN trong SQL")
[Trang sau](../sql/self_join_trong_sql.jsp)
su\_dung\_join\_trong\_sql.jsp
- - - - - -
- - - - - -
Quảng cáo
Bài viết liên quan
**Các loạt bài khác:** -

Viết câu trả lời

Drop Images

0 Bình luận