So sánh giá trị trong 2 bảng database

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.

So sánh giá trị trong 2 bảng database
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.

So sánh giá trị trong 2 bảng database
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;

So sánh giá trị trong 2 bảng database
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!