Khi sử dụng FULL OUTER JOIN để truy vấn dữ liệu từ 2 bảng trở lên, thì những dòng dữ liệu không có sự liên kết giữa các bảng sẽ có giá trị NULL.
Ta có thể hiểu là hợp dữ liệu của 2 hoặc nhiều bảng.
Cú pháp lệnh của FULL OUTER JOIN
SELECT Table_A.pk_column, Table_A.columns, Table_B.pk_column, Table_B.columns FROM Table_A FULL OUTER JOIN Table_B ON Table_A.pk_column = Table_B.fk_column;
Ví dụ về sử dụng FULL OUTER JOIN
Chúng ta có 2 bảng là users và groups có mối quan hệ như sau:
Chú ý: Để sử dụng FULL OUTER JOIN thì giữa các bảng CSDL không tồn tại liên kết khóa ngoại.
Trong đó dữ liệu của bảng users là:
Còn dữ liệu của bảng groups là:
Yêu cầu: Sử dụng FULL OUTER RIGHT để lấy dữ liệu về user và group
SELECT u.user_id, u.username, g.group_name FROM users as u FULL OUTER JOIN groups as g ON u.group_id = g.group_id
Kết quả:
User “PhươngLTM” không có dữ liệu ở bảng groups nên group_name có giá trị là null
Group “author“, “developer” và “partner” không có user nào liên kết nên user_id và username hiển thị giá trị là null