06/04/2021, 14:50

Right Join trong MySQL - MySQL căn bản

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 ở ...

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ảng Students:

student right join JPG

Bảng Class:

right join class JPG

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ả:

ket qua right join mysql JPG

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.

Bùi Văn Nam

27 chủ đề

7090 bài viết

Cùng chủ đề
0