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:
INTERSECT trong SQL Server
Trung Nguyen 22/11/2020
INTERSECT trong SQL Server

Tìm hiểu cách sử dụng toán tử INTERSECT trong SQL Server để trả về phần giao nhau của các tập kết quả của hai truy vấn.

EXCEPT trong SQL Server
Trung Nguyen 22/11/2020
EXCEPT trong SQL Server

Tìm hiểu cách sử dụng EXCEPT trong SQL Server để loại trừ tập kết quả của một truy vấn ra khỏi tập kết quả của một truy vấn khác.

SQL Server: Hướng dẫn subquery trong SQL Server từ A-Z
Trung Nguyen 22/11/2020
SQL Server: Hướng dẫn subquery trong SQL Server từ A-Z

Tìm hiểu về subquery, toán tử EXISTS, ANY, ALL trong SQL Server và cách sử dụng truy vấn con để truy vấn dữ liệu.

UNION trong SQL Server
Trung Nguyen 22/11/2020
UNION trong SQL Server

Tìm hiểu cách sử dụng UNION trong SQL Server để kết hợp kết quả của hai hoặc nhiều truy vấn thành một tập kết quả duy nhất.