LEFT 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 trái (left-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 phải (right-hand table).
Cú pháp LEFT JOIN trong MySQL
Cú pháp chung của LEFT JOIN trong MySQL như sau:
SELECT columns
FROM table1
LEFT 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ụ LEFT 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 nhân viên và tên của phòng ban của họ (nếu có) từ hai bảng trên. Bạn có thể sử dụng LEFT JOIN như sau:
SELECT employees.name, departments.dept_name
FROM employees
LEFT JOIN departments ON employees.dept_id = departments.dept_id;
Kết quả sẽ là:
+----------+------------+
| name | dept_name |
+----------+------------+
| Alice | HR |
| Bob | IT |
| Charlie | HR |
+----------+------------+
Trong kết quả trên, LEFT JOIN đã trả về tất cả các nhân viên từ bảng employees và các phòng ban tương ứng từ bảng departments. Phòng ban "Finance" không có nhân viên nào tương ứng, vì vậy cột dept_name trong kết quả có giá trị NULL cho phòng ban này.
Điều kiện LEFT JOIN
- LEFT JOIN trả về tất cả các hàng từ bảng bên trái (left-hand table), và các hàng từ bảng bên phải (right-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 phải, các cột từ bảng bên phải sẽ có giá trị NULL trong kết quả.
- LEFT 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 trái đều được bao gồm trong kết quả, dù có bản ghi tương ứng từ bảng bên phải hay không.
LEFT JOIN là một công cụ hữu ích trong SQL khi cần kết hợp dữ liệu từ các bảng mà bảng bên trái (left-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.