Chào các bạn, hôm nay mình sẽ tiếp tục nói đến phép Join trong SQL. Ở các bài trước mình đã nói đến Inner Join và Left Join rồi, vậy thì trong bài này mình sẽ nói đến Right Join.
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ái theo đ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.
Bài viết này được đăng tại [kiso.vn]
2. Ví dụ Right Join trong SQL
Giả sử mình có bảng SINHVIEN và KHOA như sau:
MASINHVIEN | TENSINHVIEN | TUOISINHVIEN | MAKHOA ------------+----------------+-----------------+-------- 1 | Cường | 28 | 1 2 | Kính | 26 | 2 3 | Quyền | 20 | 1 4 | Tình | 25 | 2
MAKHOA | TENKHOA --------+------------------------------- 1 | Công Nghệ Thông Tin 2 | Toán 3 | 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.
SELECT MASINHVIEN, TENSINHVIEN, TUOISINHVIEN, SV.MAKHOA, TENKHOA FROM SINHVIEN SV RIGHT JOIN KHOA K ON SV.MAKHOA = K.MAKHOA
Kết quả sẽ trả về như sau:
MASINHVIEN | TENSINHVIEN | TUOISINHVIEN | MAKHOA | TENKHOA -----------+-------------+--------------+--------+--------- 1 | Cường | 28 | 1 | Công Nghệ Thông Tin 2 | Kính | 26 | 2 | Toán 3 | Quyền | 20 | 1 | Công Nghệ Thông Tin 4 | 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.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Right Join trong SQL2. Ví dụ Right Join...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Right Join trong SQL2. Ví dụ Right Join trong SQL1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát hành...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Right Join trong SQL2. Ví dụ Right Join trong SQLV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường dẫn...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Right Join trong SQL2. Ví dụ Right Join trong SQLV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc file...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Right Join trong SQL2. Ví dụ Right Join trong SQLIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ hổng...