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 | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

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

Chia sẻ kiến thức 05/05/2022

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.

>> Khóa học lập trình cơ bản

>> Kỹ thuật lập trình PHP

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.

Câu lệnh truy vấn dữ liệu từ nhiều bảng
Câu lệnh truy vấn dữ liệu từ nhiều bảng.

>>> 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âu lệnh Inner Join trong SQL
Câu lệnh Inner Join trong SQL

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;

Câu lệnh Outer Join bao gồm Left Join, Right Join ᴠà Full Join.
Câu lệnh Outer Join bao gồm Left Join, Right Join ᴠà Full Join.

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

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại