Ở bài trước chúng ta đã được tìm hiểu Inner Join và biết được tại sao nên sử dụng Inner Join thay thế cho tích đề các. Và tiếp tục loạt bài viết học SQL thì trong bài này mình sẽ nói đến Left Join.
1. Left Join trong SQL
Với Inner Join thì kết quả trả về sẽ là hợp của hai bảng, nghĩa là chỉ có những records nào thỏa điều kiện ở ON thì mới được chọn. Còn với Left Join thì khác, nó sẽ ưu tiên chọn tất cả những records thỏa điều kiện ở ON lẫn những record không thỏa điều kiện ở ON trong bảng phía bên trái.
Nói rõ hơn thì nó sẽ chọn tất cả records của table nằm ở phía bên trái, còn table phía bên phải sẽ chọn những records nào thỏa điều kiện ở ON. Xem hình để hiểu rõ hơn.
Bài viết này được đăng tại [kiso.vn]
2. Ví dụ Left Join trong SQL
Giả sử ta có bảng SINHVIEN 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 5 | Hùng | 25 | 0
Và bảng KHOA.
MAKHOA | TENKHOA --------+------------------------------- 1 | Công Nghệ Thông Tin 2 | Toán
Bây giờ mình muốn lấy danh sách sinh viên và thông tin về Khoa mà sinh viên đang học. nếu nhìn vào bảng dữ liệu thì sẽ thấy sinh viên có tên là Hùng sẽ không thuộc một khoa nào, nên nếu ta thực hiện phép Inner Join thì kết quả trả về sẽ thiếu sinh viên này. Nhưng nếu ta thực hiện Left Join thì sẽ có đầ đủ, chỉ có điều các column về Khoa sẽ bị NULL.
SELECT MASINHVIEN, TENSINHVIEN, TUOISINHVIEN, SV.MAKHOA, TENKHOA FROM SINHVIEN SV LEFT 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 5 | Hùng | 25 | 0 |
Như vậy những columns nào nằm ở bảng bên phải (RIGHT) mà không thỏa điều kiện ở ON thì sẽ có giá trị rỗng.
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. Left Join trong SQL2. Ví dụ Left Join...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Left Join trong SQL2. Ví dụ Left 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. Left Join trong SQL2. Ví dụ Left 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. Left Join trong SQL2. Ví dụ Left 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. Left Join trong SQL2. Ví dụ Left 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...