Tìm hiểu về JOIN trong SQL

 Jan-08-2021 11:09 AM
#news

Trong các cơ sở dữ liệu phức tạp, mệnh đề JOIN được sử dụng rất thường xuyên với mục đích kết hợp dữ liệu trên hai hoặc nhiều bảng khác nhau dựa trên mối quan hệ giữa chúng. Trong bài viết này chúng ta sẽ cùng tìm hiểu các ví dụ minh họa cụ thể để hiểu về mệnh đề JOIN trong SQL.

Các loại Join trong SQL

Trong SQL Join được chia thành nhiều loại, mỗi loại lại có các chức năng khác nhau trong từng trường hợp. Ở bài viết này chúng ta cùng tìm hiểu về các loại Join sau:

  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • FULL OUTER JOIN

Chúng ta hãy nhìn vào ví dụ sau đây:

  • bảng school với các thông tin:

  • bảng student với các thông tin:

Sau khi xem qua thì chúng ta có thể thấy rằng bảng school có quan hệ một - nhiều với bảng student

1. INNER JOIN

INNER JOIN: Trả về các bản ghi có giá trị phù hợp ở cả hai bảng

Cú pháp sử dụng:

SELECT * FROM student
INNER JOIN school
ON student.school_id = school.id

Kết quả nhận được:

Kết luận: Như vậy chúng ta có thể thấy khi sử dụng mệnh đề INNER JOIN thì kết quả trả về chỉ là thông tin của những student và school có giá trị phù hợp với điều kiện ở cả 2 bảng.

2. LEFT JOIN

LEFT JOIN: Trả về các bản ghi từ bảng bên trái (table1) và các bản ghi được so khớp từ bảng bên phải (table2). Kết quả là NULL từ phía bên phải, nếu không có kết quả phù hợp.

Cú pháp sử dụng:

SELECT * FROM student
LEFT JOIN school
ON student.school_id = school.id

Kết quả nhận được:

Kết luận: Như vậy chúng ta có thể thấy khi sử dụng mệnh đề LEFT JOIN thì kết quả trả về chỉ là thông tin của tất cả các student (vì trong trường hợp này student là table 1) và school có giá trị phù hợp với điều kiện còn các giá trị không phù hợp sẽ là NULL

3. RIGHT JOIN

RIGHT JOIN: Trả về các bản ghi từ bảng bên phải (table2) và các bản ghi được so khớp từ bảng bên trái (table1). Kết quả là NULL từ phía bên trái, nếu không có kết quả phù hợp.

Cú pháp sử dụng:

SELECT * FROM student
RIGHT JOIN school
ON student.school_id = school.id

Kết quả nhận được:

Kết luận: Như vậy chúng ta có thể thấy khi sử dụng mệnh đề RIGHT JOIN thì kết quả trả về chỉ là thông tin của tất cả các school (vì trong trường hợp này school là table 2) và student có giá trị phù hợp với điều kiện còn các giá trị không phù hợp sẽ là NULL

4. FULL OUTER JOIN

FULL OUTER JOIN: Trả về tất cả các bản ghi khi có sự trùng khớp trong các bản ghi bảng bên trái (table1) hoặc bên phải (table2)

Cú pháp sử dụng:

SELECT * FROM student
FULL OUTER JOIN school
ON student.school_id = school.id

Lời kết

Qua bài viết này mình đã giới thiệu được cho các bạn về các loại JOIN trong SQL. Mỗi loại JOIN lại có các chức năng và lợi ích riêng. Chúng ta cần sử dụng chúng 1 cách linh hoạt và hợp lý để có một câu truy vấn tối ưu nhất. Các bạn có thể tham khảo link tài liệu ở cuối bài viết để hiểu rõ hơn về JOIN trong SQL.

Lê Quang Khải

Hỗ trợ trực tuyến
Online Offline
Hỗ trợ trực tuyến