Tìm hiểu LEFT JOIN trong MySQL – Học MySQL cơ bản

Tìm hiểu LEFT JOIN trong MySQL – Học MySQL cơ bản

Tại bài viết trước chúng ta đã cùng nhau tìm hiểu mệnh đề JOIN trong MySQL và nắm được cách sử dụng ra sao, tuy nhiên khi chỉ sử dụng mệnh đề JOIN đơn thuần thì chưa thể kết hợp dữ liệu một cách triệt để nhất trong một số trường hợp đặt ra mong muốn.

Trong bài viết này, cũng như các bài viết sau chúng ta sẽ tiếp tục với mệnh đề JOIN với các keyword INNER JOIN, LEFT JOINRIGHT JOINCROSS JOIN, SELF JOIN,  FULL OUTER JOIN.

LEFT JOIN trong MySQL

LEFT JOIN trong SQL là kiểu JOIN trả về tất cả các bản ghi từ bảng bên TRÁI(bảng 1) và các bản ghi phù hợp mệnh đề ON từ bảng bên PHẢI(bảng 2). Nếu mệnh đề ON không khớp với bản ghi nào trong bảng bên phải thì LEFT JOIN sẽ vẫn trả về một hàng trong kết quả, nhưng giá trị là NULL trong mỗi cột từ bảng bên phải.

Điều này nghĩa là LEFT JOIN trả về tất cả giá trị từ bảng bên trái, cộng với các giá trị phù hợp từ bảng bên phải hoặc NULL trong trường hợp không có giá trị phù hợp nào.

Tìm hiểu LEFT JOIN trong MySQL – Học MySQL cơ bản
Hình minh họa mệnh đề LEFT JOIN

>>XEM THÊM: Lệnh ALTER TABLE trong MySQL…Lệnh sửa đổi cấu trúc bảng

Cú pháp

LEFT JOIN có cú pháp như sau.

SELECT *
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name

Trong đó:

  • table1, table2: Tên bảng
  • column_name: tên cột liên kết của bảng.

Ví dụ sử dụng

Ta có 2 bảng là bảng posts và category như bên dưới.

  • Bảng category
Tìm hiểu FULL OUTER JOIN trong MySQL - Học MySQL cơ bản
  • Bảng posts
Tìm hiểu FULL OUTER JOIN trong MySQL - Học MySQL cơ bản

Sử dụng lệnh SELECT truy xuất dữ liệu và kết hợp mệnh đề LEFT JOIN để kết hợp dữ liệu 2 bảng. Viết SQL.

SELECT *
FROM posts
LEFT JOIN category
ON posts.cate_id = category.id;

>>XEM THÊM: Toán tử số học trong MySQL – Phép toán trong MySQL

Kết quả khi thực hiện truy vấn.

Tìm hiểu LEFT JOIN trong MySQL – Học MySQL cơ bản

*Lưu ý: Khi kết hợp bảng nếu tên các cột bị trùng nhau để phân biệt được bạn nên đặt lại tên cột trong select bằng thuộc tính AS nhé*

SELECT  posts.*, category.name as category_name
FROM posts
LEFT JOIN category
ON posts.cate_id = category.id;

Kết quả truy vấn

Tìm hiểu LEFT JOIN trong MySQL – Học MySQL cơ bản

Qua ví dụ đơn giản này hy vọng đã giúp bạn nắm được câu lệnh FULL OUTER JOIN.

Cảm ơn bạn đã đọc hết bài viết! Chúc bạn học tốt!

[XEM TẤT CẢ CÁC BÀI HƯỚNG DẪN MYSQL TẠI ĐÂY]

XEM THÊM
Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng
Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới
Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL
Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT
Toán tử so sánh trong MySQL – So sánh bằng, lớn hơn, nhỏ hơn