×

Kết hợp bảng với LEFT JOIN trong MySQL

Trong cơ sở dữ liệu MySQL, việc kết hợp dữ liệu từ nhiều bảng khác nhau là một trong những thao tác cơ bản và quan trọng đối với các lập trình viên. Một trong những cách phổ biến để thực hiện điều này là sử dụng LEFT JOIN. Hãy cùng tìm hiểu chi tiết về cách sử dụng LEFT JOIN trong MySQL.

Khái Niệm LEFT JOIN

LEFT JOIN là một loại JOIN trong SQL dùng để kết hợp dữ liệu từ hai bảng. Kết quả trả về sẽ bao gồm tất cả các bản ghi từ bảng bên trái (LEFT table) và các bản ghi khớp từ bảng bên phải (RIGHT table). Nếu không có bản ghi nào khớp trong bảng bên phải, các giá trị từ bảng bên phải sẽ là NULL.

Cú Pháp LEFT JOIN

Cú pháp cơ bản của LEFT JOIN trong MySQL như sau:

SELECT column1, column2, ...
FROM table1
LEFT JOIN table2
ON table1.common_column = table2.common_column;
  • column1, column2, ...: Các cột mà bạn muốn hiển thị.
  • table1: Bảng bên trái (LEFT table).
  • table2: Bảng bên phải (RIGHT table).
  • common_column: Cột chung được dùng để kết hợp hai bảng.

Ví Dụ Cụ Thể

Giả sử chúng ta có hai bảng students (danh sách học sinh) và courses (danh sách khóa học). Bảng students có cấu trúc như sau:

id name course_id
1 Alice 1
2 Bob 3
3 Charlie NULL

Bảng courses có cấu trúc như sau:

id course_name
1 Mathematics
2 Physics

Bây giờ, chúng ta muốn lấy danh sách tất cả học sinh và tên khóa học mà họ đang theo học, nếu không có thì để là NULL. Truy vấn LEFT JOIN sẽ như sau:

SELECT students.id, students.name, courses.course_name
FROM students
LEFT JOIN courses
ON students.course_id = courses.id;

Kết quả:

id name course_name
1 Alice Mathematics
2 Bob NULL
3 Charlie NULL

Trong kết quả này, Alice đang học Mathematics, còn Bob và Charlie không theo học khóa học nào nên giá trị tương ứng của course_name là NULL.

Tình Huống Ứng Dụng Thực Tiễn

  1. Quản lý nhân sự và phòng ban: Trong một công ty, bạn có bảng employees (nhân viên) và bảng departments (phòng ban). Dùng LEFT JOIN để liệt kê tất cả nhân viên và tên phòng ban tương ứng.

  2. Quản lý bán hàng: Bảng orders (đơn hàng) và bảng customers (khách hàng). Dùng LEFT JOIN để lấy tất cả đơn hàng và thông tin khách hàng tương ứng.

  3. Điểm danh sinh viên: Bảng attendance (điểm danh) và bảng students (học sinh). LEFT JOIN có thể dùng để liệt kê tất cả sinh viên và trạng thái điểm danh của họ.

Kết Luận

Việc sử dụng LEFT JOIN trong MySQL giúp bạn dễ dàng kết hợp và tạo lập các báo cáo từ nhiều bảng khác nhau, đồng thời đảm bảo rằng tất cả các bản ghi từ bảng chính (bảng bên trái) đều được bảo lưu. Đây là một công cụ mạnh mẽ giúp bạn xử lý và truy xuất dữ liệu một cách tối ưu và hiệu quả.

Comments