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
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:
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:
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:
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: