Cách sử dụng các câu lệnh truy vấn dữ liệu từ nhiều bảng (inner join, outer join, self join, union, except, intersection) trong SQL
Muố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. Để hiểu rõ hơn về câu lệnh này, bạn có thể tham khảo bài viết hướng dẫn của FUNiX về cách sử dụng câu lệnh truy vấn dữ liệu từ nhiều bảng.
Table of Contents
Muố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.
1. Bạn biết gì về câu lệnh truy vấn dữ liệu từ nhiều bảng?
Thao tác trích xuất thông tin được lưu trữ trong các table được gọi là truy vấn dữ liệu trong SQL. Thông tin được truy xuất thông qua các cột và nó có thể thuộc một hoặc nhiều bảng.
Được biết, 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. Theo đó, hai bảng kết nối được với nhau khi có 1 trường chung giữa 2 bảng này.
>>> Xem thêm: SQL Series 5- Bài tập thực hành tạo cơ sở dữ liệu và các bảng
2. Cách sử dụng các câu lệnh truy vấn dữ liệu nhiều bảng trong SQL
Các câu lệnh từ nhiều bảng trong SQL có thể kể đến như: Inner join, Outer join, Self join, Union, Except, Intersection. Dưới đây là cách sử dụng từ nhiều bảng:
2.1 Cách sử dụng inner join
Câu lệnh Inner Join trong SQL thường được sử dụng phổ biến hiện nay. Đây là mệnh đề truy vấn với kết quả trả về là tập hợp các dữ liệu thỏa mãn điều kiện chung từ hai bảng. Truy vấn này sẽ so sánh mỗi hàng trong bang1 với mỗi hàng trong bang2 để tìm ra các cặp hàng thỏa mãn điều kiện.
Cú pháp cơ bản của Inner Join trong SQL như sau:
SELECT cot1, cot2,… cotn
FROM bang1
INNER JOIN bang2
ON bang1.cot_chung = bang2.cot_chung;
2.2 Cách sử dụng câu lệnh truy vấn dữ liệu từ nhiều bảng outer join
Câu lệnh Outer Join bao gồm Left Join, Right Join ᴠà Full Join.
2.2.1 Câu lệnh Left Join
Kiểu kết nối này trả về các hàng nằm ở bảng bên trái trong điều kiện ON và chỉ lấy ở các bảng còn lại những hàng đáp ứng được điều kiện đặt ra
Cú pháp Left Join:
SELECT cot
FROM bang1
LEFT [OUTER] JOIN bang2
ON bang1.cot = bang2.cot;
2.2.2 Câu lệnh Right Join
Kiểu kết nối này trả về các hàng nằm ở bảng bên phải trong điều kiện ON và chỉ lấy ở các bảng còn lại những hàng đáp ứng được điều kiện đặt ra
Cú pháp Right Join trong SQL:
SELECT cot
FROM bang1
RIGHT [OUTER] JOIN bang2
ON bang1.cot = bang2.cot;
2.2.3 Câu lệnh Full Join
Kiểu kết nối này trả về tất cả các hàng nằm ở bảng trái và phải và giá trị NULL đặt ở những nơi không đáp ứng được điều kiện.
Cú pháp Full Join trong SQL:
SELECT cot
FROM bang1
FULL [OUTER] JOIN bang2
ON bang1.cot = bang2.cot;
>>> Xem thêm: SQL Series 3- Ý nghĩa các từ khóa trong SQL
2.3 Cách sử dụng câu lệnh truy vấn dữ liệu từ nhiều bảng union, except, intersection
Từ nhiều bảng với mệnh đề Union trong SQL được sử dụng để kết hợp các kết quả của hai hoặc nhiều câu lệnh SELECT, mà không cần trả về bất kỳ hàng trùng lặp nào.
Để sử dụng mệnh đề UNION này, mỗi câu lệnh SELECT cần phải có:
- Cùng một số cột được chọn
- Cùng một số biểu thức cột
- Cùng kiểu dữ liệu
- Chúng nằm trong cùng một trật tự
Cú pháp của mệnh đề UNION trong SQL như sau:
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition] UNIONSELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
Ngoài ra, còn có hai mệnh đề khác (các toán tử), cũng giống như mệnh đề UNION đó là Except và Intersection. Cụ thể:
- Mệnh đề Intersect trong SQL: Đây là mệnh đề được sử dụng để kết hợp hai câu lệnh SELECT. Nhưng trả về các hàng chỉ từ câu lệnh SELECT đầu tiên giống với một dòng trong câu lệnh SELECT thứ hai.
- SQL mệnh đề Except trong SQL: Đây là mệnh đề được kết hợp hai câu lệnh SELECT và trả về các hàng từ câu lệnh SELECT đầu tiên không được trả về bởi câu lệnh SELECT thứ hai.
Như vậy, bài viết trên đây FUNiX vừa hướng dẫn bạn cách sử dụng các câu lệnh truy vấn dữ liệu từ nhiều bảng (inner join, outer join, self join, union, except, intersection) trong SQL. Để áp dụng hiệu quả vào công việc, bạn cần tìm hiểu sâu hơn về kiến thức kết hợp với thực hành. Chúc bạn sớm thành công!
>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:
>>> Bài viết liên quan:
SQL Series 1- Hướng dẫn cơ bản về cách thao tác với Bảng trong CSDL(SQL)
SQL Series 2- Cách thao tác với dữ liệu của bảng trong CSDL(SQL)
SQL Series 3- Ý nghĩa các từ khóa trong SQL
SQL Series 4- Các loại ràng buộc trong SQL (Phần 1): Ràng buộc khóa chính, khóa ngoại
SQL Series 5- Bài tập thực hành tạo cơ sở dữ liệu và các bảng
Phạm Thị Thanh Ngọc
Bình luận (0
)