Right Join trong MySQL
Right Join trong MySQL có cách hoạt động không khác gì Left Join và Inner Join, nó sẽ trả về kết quả thỏa điều kiện ở ON và cộng thêm những dữ liệu không thỏa ở bảng bên trái.
Giả sử ta có 2 bảng A và B, lúc này:
- A Right Join B sẽ trả về kết quả so khớp ở lệnh ON + record ở bảng B không khớp.
Cũng giống như Left Join, dữ liệu ở bảng A sẽ có giá trị là NULL ở những record không khớp. Để dễ hiểu hơn thì ta sẽ làm một vài ví dụ.
1. Dữ liệu thực hành Right Join MySQL
Mình sẽ lấy luôn table ở bài trước, nhưng có chút thay đổi về data như sau:
Bài viết này được đăng tại [free tuts .net]
Bảng Students:
Bảng Class:
Bạn hãy để ý trong bảng class có ba lớp (CNTT, TOÁN, VAT LY). Trong bảng Student thì chỉ có 2 sinh viên có khóa ngoại trỏ đến lớp CNTT và TOÁN mà thôi.
Bây giờ ta hãy làm một vài ví dụ để hiểu rõ hơn về lệnh này.
2. Cách sử dụng Right Join tong MySQL
Bài toán: Lấy thông tin lớp và sinh viên đang học lớp đó, lấy luôn cả những lớp không có sinh viên nào.
Ta chỉ cần sử dụng RIght Join là có thể giải quyết được bài toán này.
SELECT * FROM students RIGHT JOIN class ON students.class_id = class.class_id
Kết quả:
Bạn hãy để ý dòng thứ 3 sẽ có một số field có giá trị null, đó chính là những lớp không có sinh viên nào.
Như vậy ta có thể tổng kết lai như sau:
- Inner Join: Dùng trong trường hợp bạn muốn JOIN 2 bảng lại và chỉ lấy thông tin thỏa ở lệnh ON.
- Left Join: Lấy kết quả như Inner Join, đồng thời lấy thêm dữ liệu ở bảng bên trái.
- Right Join: Lấy kết quả như Inner Join, đồng thời lấy thêm dữ liệu ở bảng bên phải.