Join là một trong các mệnh đề phổ biến được sử dụng nhiều nhất khi thực hiện truy vấn trong cơ sở dữ liệu quan hệ. Trong bài viết này SmartData sẽ giới thiệu với các bạn 3 loại Join trong sql phổ biến nhất ( Mysql ) đó là Inner Join, Left Join và Right Join.
Inner Join trong SQL
Công dụng
Inner join dùng để tìm ra các bản ghi năm tồn tại ở cả 2 bảng theo điều kiện tìm kiếm
Cú pháp
SELECT {tên cột} FROM {bảng 1} INNER JOIN {bảng 2} ON {bảng 1}.{cột join} = {bảng 2}.{cột join}
Ví dụ
Giả sử ta có 2 bảng như sau:
- Bảng Adress lưu trữ thông tin địa chỉ của user, bảng này có chứa cột khóa ngoại là user_id
- Bảng User lưu trữ thông tin tên tuổi của user
Khi thực hiện inner join bằng câu lệnh sau ta sẽ kết quả như phía dưới là những bản ghi tồn tại ở cả bảng user và bảng address theo kiện join là cột id của bảng user và cột user_id ở bảng address
SELECT u.id, u.user_name, a.address1, a.address2 FROM address a inner join users u on u.id = a.user_id;
Left Join trong SQL
Công dụng
Left Join tương tự với Inner Join nhưng tập kết quả đầu ra rộng hơn.
Left Join cho phép bạn chọn ra các bản ghi là tổng hợp của:
- NHững bản ghi tồn tại ở cả hai bảng theo điều kiện Join
- Những bản ghi chỉ tồn tài ở bảng bên trái ( bảng nằm giữa từ khóa FROM và LEFT JOIN) theo điều kiện tìm kiếm, với loại bản ghi này những dữ liệu ở bảng bên phải sẽ có giá trị null
Cú pháp
SELECT {tên cột} FROM {bảng 1} LEFT JOIN {bảng 2} ON {bảng 1}.{cột join} = {bảng 2}.{cột join}
Ví dụ:
Tương tự với bộ dữ liệu ở Inner Join. Khi thực hiện Left join bằng câu lệnh sau ta sẽ kết quả như phía dưới là những bản ghi tồn tại ở cả bảng user và bảng address gộp với những bản ghi chỉ tồn tài ở bảng user theo kiện join là cột id của bảng user và cột user_id ở bảng address
SELECT u.id, u.user_name, a.address1, a.address2 FROM users u left join address a on u.id = a.user_id;
Right Join trong SQL
Công dụng
Right Join cho phép bạn chọn ra các bản ghi là tổng hợp của:
- NHững bản ghi tồn tại ở cả hai bảng theo điều kiện Join
- Những bản ghi chỉ tồn tài ở bảng bên phải ( bảng sau từ khóa RIGHT JOIN) theo điều kiện tìm kiếm, với loại bản ghi này những dữ liệu ở bảng bên trái sẽ có giá trị null
Ví dụ
Khi thực hiện Right join bằng câu lệnh sau ta sẽ kết quả như phía dưới là những bản ghi tồn tại ở cả bảng user và bảng address gộp với những bản ghi chỉ tồn tài ở bảng address theo kiện join là cột id của bảng user và cột user_id ở bảng address
SELECT u.id, u.user_name, a.address1, a.address2 FROM users u right join address a on u.id = a.user_id
Kết luận
Như vậy trong bài viết vừa rồi, mình đã giới thiệu với các bạn 3 loại Join phổ biến nhất trong SQL cụ thể là Mysql. Các bạn có thể xem thêm những bài viết khác về SQL tại link này nhé.