Join trong SQL là gì?
NỘI DUNG BÀI VIẾT
Bài viết này mình sẽ chia sẽ với mọi người về các loại Join trong SQL. Cùng tìm hiểu nào.
Join là gì?
JOIN là phép kết nối dữ liệu từ nhiều bảng lại với nhau, nối 2 bảng, 3 bảng.. với nhau. Khi bạn cần truy vấn các cột dữ liệu từ nhiều bảng khác nhau để trả về trong cùng một tập kết quả , bạn cần dùng JOIN. 2 bảng kết nối được với nhau khi có 1 trường chung giữa 2 bảng này.
Các loại Join trong SQL
INNER JOIN (Hoặc JOIN)
INNER JOIN (Hoặc JOIN): Trả về tất cả các hàng khi có ít nhất một giá trị ở cả hai bảng
LEFT OUTER JOIN (Hoặc LEFT JOIN)
LEFT OUTER JOIN (Hoặc LEFT JOIN): Trả lại tất cả các dòng từ bảng bên trái, và các dòng đúng với điều kiện từ bảng bên phải
RIGHT OUTER JOIN (Hoặc RIGHT JOIN)
RIGHT OUTER JOIN (Hoặc RIGHT JOIN): Trả lại tất cả các hàng từ bảng bên phải, và các dòng thỏa mãn điều kiện từ bảng bên trái
FULL OUTER JOIN (Hoặc OUTER JOIN)
FULL OUTER JOIN (Hoặc OUTER JOIN): Trả về tất cả các dòng đúng với 1 trong các bảng.
Câu lệnh SQL Join
Câu lệnh INNER JOIN
-
INNER JOIN trả về kết quả là các bản ghi mà trường được join hai bảng khớp nhau, các bản ghi chỉ xuất hiện một trong hai bảng sẽ bị loại.
-
Có thể thay INNER JOIN bởi JOIN. Ý nghĩa và kết quả là như nhau.
-
Cú pháp:
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
-
INNER JOIN nhiều table
SELECT column_list
FROM table1
INNER JOIN table2 ON join_condition1
INNER JOIN table3 ON join_condition2
Ví Dụ:
-
Có bảng khach_hang với thông tin như sau:
-
Có bảng order_kh với thông tin như sau:
=> Ở 2 bảng trên thì thấy rằng MaKH được phản ánh là mã khách hàng ở bảng khach_hang, mối quan hệ 2 bảng là cột MaKH
-
Chúng ta chạy câu lệnh SQL join sau đây, và xem kết quả trả ra, sẽ lấy ra như sau:
Select * from lanptp.khach_hang as KH
Join lanptp.order_kh as OD on KH.MaKH= OD.MaKH
Câu lệnh LEFT OUTER JOIN
-
LEFT OUTER JOIN là từ khóa trả về tất cả các hàng (rows) từ bảng bên trái (table1), với các hàng tương ứng trong bảng bên phải (table2). Chấp nhận cả dữ liệu NULL ở bảng 2.
-
LEFT OUTER JOIN hay còn được gọi là LEFT JOIN
-
Cú pháp:
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
-
LEFT JOIN cũng có thể join nhiều table
SELECT column_list
FROM table1
LEFT JOIN table2 ON join_condition1
LEFT JOIN table3 ON join_condition2
-
Ví dụ: Vẫn với data như 2 bảng ở trên khach_hang, order_kh khi sử dụng câu lệnh Left Join kết quả sẽ trả ra như sau:
Select * from lanptp.khach_hang as KH
Left join lanptp.order_kh as OD on KH.MaKH= OD.MaKH
Câu lệnh RIGHT OUTER JOIN
-
RIGHT OUTER JOIN là từ khóa trả về tất cả các hàng (rows) từ bảng bên phải (table1), với các hàng tương ứng trong bảng bên trái (table2). Chấp nhận cả dữ liệu NULL ở bảng 2. ngược lại với LEFT JOIN
-
RIGHT OUTER JOIN hay còn được gọi là RIGHT JOIN
-
Cú pháp:
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
-
Vẫn với data 2 bảng trên các bạn hãy thử chạy câu lệnh RIGHT JOIN nhé!
-
RIGHT JOIN cũng có thể join nhiều table
SELECT column_list
FROM table1
RIGHT JOIN table2 ON join_condition1
RIGHT JOIN table3 ON join_condition2
Câu lệnh FULL OUTER JOIN
-
FULL OUTER JOIN là sự kết hợp của LEFT JOIN và RIGHT JOIN
-
Cú Pháp:
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
Nguồn: https://viblo.asia/p/cau-lenh-sql-join-cac-loai-join-trong-sql-07LKXWJp5V4
Trả lời