SQL Server: SELECT với nhiều JOIN
Giải phóng thời gian, khai phóng năng lực
Câu lệnh SELECT với nhiều JOIN dùng để lấy dữ liệu từ ba bảng dữ liệu có liên quan hoặc liên kết với nhau trở lên.
Ví dụ bảng Student chứa thông tin sinh viên, bảng Marks chứa điểm sinh viên và bảng Subjects chứa môn học, thì nếu muốn biết các sinh viên có điểm số của mỗi môn học như thế nào ta cần sử dụng nhiều JOIN trong câu lệnh SELECT.
Cú pháp:
- Lấy tất cả các cột của các bảng
SELECT * FROM Bảng1 Bí_danh1 JOIN Bảng2 Bí_danh2 ON Bí_danh1.Cột_chung=Bí_danh2.Cột_chung JOIN Bảng3 Bí_danh3 ON Bí_danh2.Cột_chung1=Bí_danh3.Cột_chung1;
Ví dụ:
SELECT * FROM Student a JOIN Marks b ON a.studentid=b.studentid JOIN Subjects c ON b.subjectid=c.subjectid;
- Lấy một số cột từ các bảng
SELECT Các_cột FROM Bảng1 Bí_danh1 JOIN Bảng2 Bí_danh2 ON Bí_danh1.Cột_chung=Bí_danh2.Cột_chung JOIN Bảng3 Bí_danh3 ON Bí_danh2.Cột_chung1=Bí_danh3.Cột_chung1;
Ví dụ:
SELECT studentname,subjectname,mark FROM Student a JOIN Marks b ON a.studentid=b.studentid JOIN Subjects c ON b.subjectid=c.subjectid;
Nếu trong Các_cột mà có cột nào có tên trùng nhau ở nhiều bảng thì cần phải nói rõ cột đó là của bảng nào bằng cú pháp:
Bí_danh.Cột_chung
Ví dụ cột studentid đều nằm ở hai bảng Student và Marks và cột subjectid đều nằm ở hai bảng Marks và Subjects thì nếu muốn lấy cột studentid và subjectid trong tập kết quả ta làm như sau:
SELECT a.studentid,studentname,c.subjectid,subjectname,mark FROM Student a JOIN Marks b ON a.studentid=b.studentid JOIN Subject c on b.subjectid=c.subjectid;
Giải phóng thời gian, khai phóng năng lực