LEFT OUTER JOIN
<bảng 1> LEFT OUTER JOIN <bảng 2> ON <điều kiện 1-2> Trả về 01 tập các bản ghi gồm:
Các bản ghi là kết quả của việc kết nối các bản ghi của <bảng 1> với các bản ghi của <bảng 2> nếu chúng thỏa mãn <điều kiện 1-2> (chính là kết quả của INNER JOIN).
Các bản ghi còn lại của <bảng 1> (mà không thể kết nối được với
bản ghi nào của <bảng 2>) sau khi đã bổ sung thêm các giá trị NULL vào vị trí tương ứng với các cột của <bảng 2>.
34
SELECT * FROM Lop LEFT OUTER JOIN HocSinh ON Lop.MaLop = HocSinh.MaLop
Lop
HocSinh
35
B. Các mệnh đề OUTER JOIN
RIGHT OUTER JOIN
<bảng 1> RIGHT OUTER JOIN <bảng 2> ON <điều kiện 1-2> Trả về 01 tập các bản ghi gồm:
Các bản ghi là kết quả của việc kết nối các bản ghi của <bảng 1> với các bản ghi của <bảng 2> nếu chúng thỏa mãn <điều kiện 1-2> (chính là kết quả của INNER JOIN).
Các bản ghi còn lại của <bảng 2> (mà không thể kết nối được với
bản ghi nào của <bảng 1>) sau khi đã bổ sung thêm các giá trị NULL vào vị trí tương ứng với các cột của <bảng 1>.
36
SELECT * FROM Lop RIGHT OUTER JOIN HocSinh ON Lop.MaLop = HocSinh.MaLop
Lop
HocSinh
Ví dụ 4.16
37
B. Các mệnh đề OUTER JOIN
FULL OUTER JOIN
<bảng 1> FULL OUTER JOIN <bảng 2> ON <điều kiện 1-2> Trả về 01 tập các bản ghi gồm:
Các bản ghi là kết quả của việc kết nối các bản ghi của <bảng 1> với các bản ghi của <bảng 2> nếu chúng thỏa mãn <điều kiện 1-2> (chính là kết quả của INNER JOIN).
Các bản ghi còn lại của <bảng 1> (mà không thể kết nối được với
bản ghi nào của <bảng 2>) sau khi đã bổ sung thêm các giá trị NULL vào vị trí tương ứng với các cột của <bảng 2>.
Các bản ghi còn lại của <bảng 2> (mà không thể kết nối được với
bản ghi nào của <bảng 1>) sau khi đã bổ sung thêm các giá trị NULL vào vị trí tương ứng với các cột của <bảng 1>.
38
SELECT * FROM Lop FULL OUTER JOIN HocSinh ON Lop.MaLop = HocSinh.MaLop
Lop
HocSinh
Ví dụ 4.16
39