Khi thực hiện lấy dữ liệu từ 2 hoặc nhiều bảng sử dụng FULL OUTER JOIN, thì dữ liệu tương ứng bị khuyến giữa các bảng sẽ hiển thị 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
Nguồn: vinasupport.com