JOIN nhiều bảng trong SQL

Bởi Kiên Smart Data
0 Nhận xét
Join nhiều bảng trong SQL

Join là một trong những cú pháp được sử dụng nhiều nhất trong SQL nhằm kết nối dữ liệu giữa các bảng với nhau, phục vụ truy vấn đúng thông tin. Trong bài viết này SmartData sẽ hướng dẫn bạn cách để thực hiện phép JOIN trên nhiều bảng dữ liệu.

Tham khảo video hướng dẫn tại đây

Join nhiều bảng trong SQL

Cú pháp của phép JOIN trên nhiều bảng

SELECT * FROM TABLE1 INNER/LEFT/RIGHT JOIN TABLE2 ON TABLE1.JOIN_COLUMN = TABLE2.JOIN_COLUMN INNER/LEFT/RIGHT JOIN TABLE3 ON TABLE2.JOIN_COLUMN = TABLE3.JOIN_COLUMN

Phép JOIN nhiều bảng hoạt động như thế nào?

Giả sử ta có cấu trúc DB như sau:

Phép Join nhiều bảng

Trong đó:

  • Bảng NHANVIEN có khóa chính là MANV
  • Bảng PHONGBAN có khóa chính là MAPHG
  • Bảng DEAN có khóa chính là MADA và có khóa ngoại là PHONG tham chiếu đến bảng PHONGBAN

Ta thực hiện phép JOIN 3 bảng với câu lệnh sau:

SELECT nv.TENNV, nv.PHG, pb.*, da.* FROM NHANVIEN nv INNER JOIN PHONGBAN pb ON nv.PHG= pb.MAPHG INNER JOIN DEAN da ON pb.MAPHG = da.PHONG

Câu lệnh trên sẽ hoạt động như sau:

Đầu tiên MySQL sẽ thực hiện join trước 2 bảng NHANVIEN và PHONGBAN để tạo ra một bảng tạm trung gian có dữ liệu như sau:

Bảng tạm là kết quả của phép join đầu tiên

Sau khi có bảng tạm phía trên, SQL sẽ mang kết quả của bảng tạm kia, thực hiện join tiếp với bảng thứ ba ( DEAN ) trong phép join trên. Khi đó ta được kết quả như sau:

Kết quả cuối cùng của phép JOIN 3 bảng

Nếu các phép join là inner join, thứ tự các bảng không quan trọng

Nếu các phép join không phải inner join, kết quả trả ra sẽ khác nhau ở một số trường hợp nếu đổi thứ tự join

Nguyên tắc trên đúng với số lượng nhiều hơn 3 bảng

Tổng kết

Bài viết trên SmartData đã hướng dẫn các bạn cách sử dụng JOIN để join nhiều bảng dữ liệu

Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 6 tháng của SmartData

Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa:

Bài viết liên quan

Để lại nhận xét

Copyright @2022 – Bản quyền thuộc Học viện dữ lệu Smart Data