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:

LEFT JOIN trong SQL Server | Comdy
Cách sử dụng mệnh đề LEFT JOIN trong SQL Server để truy vấn dữ liệu từ nhiều bảng.

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 JOINRIGHT OUTER JOIN là như nhau. Từ khóa OUTER là tùy chọn.

Và biểu đồ Venn minh họa RIGHT JOIN của hai tập kết quả:

RIGHT JOIN trong SQL Server

Ví dụ RIGHT JOIN trong SQL Server

Xem các bảng productsorder_items sau đây:

Ví dụ LEFT JOIN trong SQL Server

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ả:

Ví dụ RIGHT JOIN trong SQL Server

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í dụ RIGHT JOIN trong SQL Server

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.

SQL Server
Bài Viết Liên Quan:
Hướng dẫn đầy đủ về Expression trong SQL Server
Trung Nguyen 18/03/2021
Hướng dẫn đầy đủ về Expression trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức CASE, COALESCE và NULLIF trong SQL Server.

NULLIF trong SQL Server
Trung Nguyen 18/03/2021
NULLIF trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức NULLIF trong SQL Server để trả về NULL nếu đối số đầu tiên bằng đối số thứ hai.

COALESCE trong SQL Server
Trung Nguyen 18/03/2021
COALESCE trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức COALESCE trong SQL Server để xử lý giá trị NULL trong các truy vấn.

CASE trong SQL Server
Trung Nguyen 18/03/2021
CASE trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức CASE trong SQL Server để thêm logic if-else vào các truy vấn SQL.