Mệnh đề MySQL RIGHT JOIN được sử dụng như thế nào ?

03/05/2023 - lượt xem
Chia sẻ
 
5/5 - (2 bình chọn)

Trong bài viết này, bạn sẽ học được cách sử dụng MySQL RIGHT JOIN để truy vấn dữ liệu từ hai bảng.

Giới thiệu về mệnh đề MySQL RIGHT JOIN

MySQL RIGHT JOIN tương tự LEFT JOIN, ngoại trừ việc xử lý các bảng đã tham gia bị đảo ngược (Nghĩa là sẽ lấy tất cả kết quả của bảng bên phải).

Đây là cú pháp của RIGHT JOIN hai bảng t1và t2:

SELECT 
    select_list
FROM t1
RIGHT JOIN t2 ON 
    join_condition;

Trong cú pháp này:

  • t1 là bảng bên trái và t2là bảng bên phải.
  • join_condition chỉ định quy tắc cho các hàng phù hợp từ cả hai bảng.

Nếu join_condition sử dụng toán tử bằng nhau ( =) và các cột được nối của cả hai bảng có cùng tên và bạn có thể sử dụng cú pháp USING như sau:

SELECT 
    select_list
FROM t1
RIGHT JOIN t2 USING(column_name);

Do đó, các điều kiện tham gia sau đây là tương đương:

ON t1.column_name = t2.column_name

Và:

USING (column_name);

Làm thế nào để RIGHT JOIN hoạt động.

RIGHT JOIN bắt đầu chọn dữ liệu từ bảng bên phải ( t2). Nó khớp từng hàng từ bảng bên phải với mọi hàng từ bảng bên trái. Nếu cả hai hàng khiến điều kiện nối được đánh giá thành TRUE, thì RIGHT JOIN sẽ kết hợp các cột của các hàng này thành một hàng mới và bao gồm hàng mới này trong tập hợp kết quả.

Nếu một hàng từ bảng bên phải không có hàng phù hợp từ bảng bên trái, tính năng này RIGHT JOIN sẽ kết hợp các cột của các hàng từ bảng bên phải với NULL các giá trị cho tất cả các cột của bảng bên phải thành một hàng mới và bao gồm hàng này trong tập hợp kết quả.

Nói cách khác, RIGHT JOIN trả về tất cả các hàng từ bảng bên phải bất kể có các hàng phù hợp từ bảng bên trái hay không.

Điều quan trọng là phải nhấn mạnh rằng các mệnh đề RIGHT JOINvà LEFT JOIN tương đương về mặt chức năng và chúng có thể thay thế lẫn nhau miễn là thứ tự bảng được đảo ngược.

Lưu ý rằng the RIGHT OUTER JOIN với RIGHT JOIN có cùng chức năng như nhau. Do đó, bạn có thể sử dụng chúng thay thế cho nhau.

Ví dụ về mệnh đề MySQL RIGHT JOIN

Chúng ta sẽ sử dụng hai bảng employees và customers từ cơ sở dữ liệu mẫu để mô tả:

Cột salesRepEmployeeNumber trong bảng customers liên kết với cột employeeNumber trong bảng employees.

Một đại diện bán hàng, hoặc một nhân viên, có thể phụ trách nhiều hoặc không phụ trách khách hàng nào cả. Và mỗi khách hàng được chăm sóc bởi một hoặc nhiều đại diện bán hàng.

Nếu giá trị trong cột salesRepEmployeeNumber là NULL, có nghĩa là khách hàng không có bất kỳ đại diện bán hàng nào.

1) Ví dụ đơn giản về MySQL RIGHT JOIN

Câu lệnh này sử dụng mệnh đề RIGHT JOIN để nối bảng customersvới bảng employees.

SELECT 
    employeeNumber, 
    customerNumber
FROM
    customers
RIGHT JOIN employees 
    ON salesRepEmployeeNumber = employeeNumber
ORDER BY 
	employeeNumber;

Kết quả:

Trong ví dụ này:

  • RIGHT JOIN trả về tất cả các hàng từ bảng employees cho dù các hàng trong bảng employees có khớp với các giá trị trong cột salesRepEmployeeNumber của bảng customer hay không.
  • Nếu một hàng từ bảng employees không có hàng phù hợp từ bảng customersRIGHT JOIN sẽ sử dụng NULLcho cột customerNumber.

2) Sử dụng MySQL RIGHT JOIN để tìm các hàng không khớp

Câu lệnh sau đây sử dụng mệnh đề RIGHT JOIN để tìm những nhân viên không phụ trách bất kỳ khách hàng nào:

SELECT 
    employeeNumber, 
    customerNumber
FROM
    customers
RIGHT JOIN employees ON 
	salesRepEmployeeNumber = employeeNumber
WHERE customerNumber is NULL
ORDER BY employeeNumber;

Kết quả:

Tổng kết.

  • MySQL RIGHT JOIN cho phép bạn truy vấn dữ liệu từ hai hoặc nhiều bảng liên quan.
  • RIGHT JOIN bắt đầu chọn các hàng từ bảng bên phải. Nó luôn trả về các hàng từ bảng bên phải cho dù có các hàng khớp trong bảng bên trái hay không.
  • RIGHT OUTER JOIN là đồng nghĩa với RIGHT JOIN do đó chúng ta có thể sử dụng một trong hai là như nhau.

Các bài viết liên quan:

 

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    5/5 - (2 bình chọn)

    Xem thêm nhiều bài tin mới nhất về MySql Cơ Bản

    Xem thêm