[SQL Server] Right Join trong SQL
Right Join trong SQL
Nội dung chính
1. Right Join trong SQL
Nếu Left Join sẽ lấy tất cả các records ở bảng bên trái thì Right Join sẽ ngược lại, nó sẽ lấy toàn bộ records ở phía bên phải và hợp với các records ở bảng bên tráitheo điều kiện ON, tổng số column trả về chính bằng tổng số column của cả hai bảng. Dữ liệu của các column ở bảng bên trái sẽ phụ thuộc vào điều kiện ON, nếu thỏa điều kiện thì lấy, ngược lại sẽ có giá trị NULL.
Xen hình để hiểu rõ hơn.

2. Ví dụ Right Join trong SQL
Giả sử mình có bảng SINHVIEN và KHOA như sau:
1
2
3
4
5
6
| MASINHVIEN | TENSINHVIEN | TUOISINHVIEN | MAKHOA------------+----------------+-----------------+--------1 | Cường | 28 | 12 | Kính | 26 | 23 | Quyền | 20 | 14 | Tình | 25 | 2 |
1
2
3
4
5
| MAKHOA | TENKHOA--------+-------------------------------1 | Công Nghệ Thông Tin2 | Toán3 | Lịch Sử |
Mối liên hệ giữa hai bảng này là khóa ngoại SINHVIEN.MAKHOA trỏ đến khóa chính KHOA.MAKHOA.
Giả sử mình cần hiện thị dánh sách sinh viên của từng khoa, nếu khoa nào không có sinh viên thì vẫn được trả về.
Nhìn vào dữ liệu thì ta thấy khoa Lịch Sử sẽ không có sinh viên nào, nên nếu sử dụng Inner Join hoặc Left Join thì sẽ không nằm trong kết quả trả về, buộc ta phải sử dụng Right Join.
1
2
| SELECT MASINHVIEN, TENSINHVIEN, TUOISINHVIEN, SV.MAKHOA, TENKHOAFROM SINHVIEN SV RIGHT JOIN KHOA K ON SV.MAKHOA = K.MAKHOA |
Kết quả sẽ trả về như sau:
1
2
3
4
5
6
7
| MASINHVIEN | TENSINHVIEN | TUOISINHVIEN | MAKHOA | TENKHOA-----------+-------------+--------------+--------+---------1 | Cường | 28 | 1 | Công Nghệ Thông Tin2 | Kính | 26 | 2 | Toán3 | Quyền | 20 | 1 | Công Nghệ Thông Tin4 | Tình | 25 | 2 | Toán | | | 3 | Lịch Sử |
Các column của record thuộc khoa Lịch Sử sẽ bị rỗng vì nó không thỏa điều kiện ở ON, tức là không có sinh viên nào theo học.
Nhận xét
Đăng nhận xét