TopDev

Tìm hiểu RIGHT JOIN trong MySQL

minhdev 📖 3 phút đọc

RIGHT JOIN trong MySQL là một loại JOIN dùng để kết hợp các hàng từ hai hoặc nhiều bảng dựa trên một điều kiện kết nối, và trả về tất cả các hàng từ bảng bên phải (right-hand table), kể cả khi không có hàng nào khớp với điều kiện trong bảng bên trái (left-hand table).

Cú pháp RIGHT JOIN trong MySQL#

Cú pháp chung của RIGHT JOIN trong MySQL như sau:

SELECT columns FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;

Trong đó:

  • SELECT columns: Các cột mà bạn muốn lấy từ các bảng.

  • table1, table2: Các bảng mà bạn muốn kết hợp.

  • ON table1.column = table2.column: Điều kiện để kết hợp các hàng từ các bảng. Các cột được chỉ định ở đây phải có cùng hoặc tương đương với nhau để có thể kết hợp dữ liệu.

Ví dụ RIGHT JOIN#

Giả sử bạn có hai bảng sau:

  • Bảng employees: +----+----------+--------+ | id | name | dept_id| +----+----------+--------+ | 1 | Alice | 1 | | 2 | Bob | 2 | | 3 | Charlie | 1 | +----+----------+--------+

  • Bảng departments: +--------+------------+ | dept_id| dept_name | +--------+------------+ | 1 | HR | | 2 | IT | | 3 | Marketing | | 4 | Finance | +--------+------------+

Bạn muốn lấy tên của tất cả các phòng ban và tên của nhân viên (nếu có) của từng phòng ban từ hai bảng trên. Bạn có thể sử dụng RIGHT JOIN như sau:

SELECT departments.dept_name, employees.name FROM employees RIGHT JOIN departments ON employees.dept_id = departments.dept_id;

Kết quả sẽ là:

+------------+----------+ | dept_name | name | +------------+----------+ | HR | Alice | | IT | Bob | | HR | Charlie | | Finance | NULL | +------------+----------+

Trong kết quả trên, RIGHT JOIN đã trả về tất cả các phòng ban từ bảng departments (bao gồm cả phòng ban "Finance" mặc dù không có nhân viên nào ở phòng ban này trong bảng employees). Các cột từ bảng employees sẽ có giá trị NULL nếu không có bản ghi tương ứng từ bảng này.

Điều kiện RIGHT JOIN#

  • RIGHT JOIN trả về tất cả các hàng từ bảng bên phải (right-hand table), và các hàng từ bảng bên trái (left-hand table) nếu có kết nối tương ứng.

  • Nếu không có bản ghi tương ứng từ bảng bên trái, các cột từ bảng bên trái sẽ có giá trị NULL trong kết quả.

  • RIGHT JOIN thường được sử dụng khi bạn muốn bảo đảm rằng tất cả các hàng từ bảng bên phải được bao gồm trong kết quả, kể cả khi không có bản ghi tương ứng từ bảng bên trái.

RIGHT JOIN là một công cụ hữu ích trong SQL khi bạn cần kết hợp dữ liệu từ các bảng mà bảng bên phải (right-hand table) là bảng cơ sở và bạn muốn đảm bảo rằng tất cả các bản ghi từ bảng này đều được bao gồm trong kết quả cuối cùng.

Bài liên quan trong #Database

✓ Đã sao chép link