RIGHT JOIN trong SQL Server
Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng mệnh đề RIGHT JOIN
trong SQL Server để truy vấn dữ liệu từ hai bảng.
RIGHT JOIN
là một mệnh đề đảo ngược của mệnh đề LEFT JOIN
mà chúng tôi đã trình bày ở hướng dẫn trước. Nếu bạn bỏ lỡ thì có thể xem ở đây:
Giới thiệu về mệnh đề RIGHT JOIN trong SQL Server
Mệnh đề RIGHT JOIN
kết hợp dữ liệu từ hai hoặc nhiều bảng. Mệnh đề RIGHT JOIN
bắt đầu chọn dữ liệu từ bảng bên phải và khớp với các bản ghi từ bảng bên trái.
Mệnh đề RIGHT JOIN
trả về một tập kết quả bao gồm tất cả các bản ghi trong bảng bên phải, cho dù chúng có hay không các bản ghi khớp từ bảng bên trái.
Nếu một bản ghi trong bảng bên phải không có bất kỳ bản ghi khớp nào từ bảng bên trái, thì cột của bảng bên trái trong tập kết quả sẽ có giá trị NULL
.
Sau đây minh họa cú pháp của mệnh đề RIGHT JOIN
trong SQL Server:
SELECT
select_list
FROM
T1
RIGHT JOIN T2 ON join_predicate;
Trong cú pháp này, T1 là bảng bên trái và T2 là bảng bên phải.
Lưu ý:
RIGHT JOIN
vàRIGHT OUTER JOIN
là như nhau. Từ khóaOUTER
là tùy chọn.
Và biểu đồ Venn minh họa RIGHT JOIN
của hai tập kết quả:
Ví dụ RIGHT JOIN trong SQL Server
Xem các bảng products
và order_items
sau đây:
Câu lệnh sau trả về tất cả order_id
từ bảng sales.order_items
và tên sản phẩm từ bảng production.products
:
SELECT
product_name,
order_id
FROM
sales.order_items o
RIGHT JOIN production.products p ON o.product_id = p.product_id
ORDER BY
order_id;
Đây là kết quả:
Truy vấn trả về tất cả các bản ghi từ bảng production.products
(bảng bên phải) và các bản ghi từ bảng sales.order_items
(bảng bên trái). Nếu một sản phẩm chưa được bán lần nào (không có doanh số), cột order_id
sẽ có giá trị rỗng.
Để có được các sản phẩm chưa được bán lần nào, bạn thêm một mệnh đề WHERE
vào truy vấn trên để lọc ra các sản phẩm có doanh số:
SELECT
product_name,
order_id
FROM
sales.order_items o
RIGHT JOIN production.products p ON o.product_id = p.product_id
WHERE
order_id IS NULL
ORDER BY
product_name;
Đây là kết quả:
Và biểu đồ Venn minh họa kết quả của RIGHT JOIN
truy vấn các bản ghi chỉ tồn tại trong bảng bên phải:
Trong hướng dẫn này, bạn đã học cách sử dụng mệnh đề RIGHT JOIN
trong SQL Server để truy vấn dữ liệu từ hai bảng.