Trang Chủ

SQL Advance – Joins

Việc truy vấn data trên 1 bảng thì khá đơn giản và dễ dùng trong SQL. Nhưng với từ 2 bảng trở lên, query sẽ trở nên khó khăn hơn khi phải móc nối nhiều table với nhau. Phải tìm được điều kiện và cách nối thích hợp để truy vấn được data mà bạn mong muốn.

Trong bài này mình sẽ giới thiệu tới những cách sử dụng câu lệnh Joins trong SQL. Tùy theo ngữ cảnh và mục đích sử dụng. Hi vọng bạn sẽ lựa chọn được cách dùng thích hợp.

Dữ liệu mình đưa ra để ví dụ có 2 bảng như sau

table1: Orders

OrderID CustomerID OrderDate
10101 CU001 2021-09-18
10102 CU002 2021-09-18
10103 CU001 2021-09-20
10104 CU004 2021-09-20

table2: Customers

CustomerID CustomerName Address City
CU001 Nam Hà 16 Lý Thường Kiệt Đà Nẵng
CU002 Văn Thanh 10 Hùng Vương Hà Nội
CU003 Cẩm Tú 14 An Thượng Hải Phòng

1. INNER JOIN

–> Kết nối dựa trên dữ liệu chung của 2 bảng

Syntax

Example

Thực hiện so sánh bảng [Orders] và [Customers].

Result

OrderID CustomerName Address City
10101 Nam Hà 16 Lý Thường Kiệt Đà Nẵng
10102 Văn Thanh 10 Hùng Vương Hà Nội
10103 Nam Hà 16 Lý Thường Kiệt Đà Nẵng

2. LEFT JOIN

Syntax

Example

Thực hiện so sánh bảng [Orders] và [Customers].

Result

OrderID CustomerName Address City
10101 Nam Hà 16 Lý Thường Kiệt Đà Nẵng
10102 Văn Thanh 10 Hùng Vương Hà Nội
10103 Nam Hà 16 Lý Thường Kiệt Đà Nẵng
10104 null null null

3. RIGHT JOIN

Syntax

Note: RIGHT JOIN hoặc RIGHT OUTER JOIN đều được nhé.

Example

Thực hiện so sánh bảng [Orders] và [Customers].

Result

OrderID CustomerName Address City
10101 Nam Hà 16 Lý Thường Kiệt Đà Nẵng
10102 Văn Thanh 10 Hùng Vương Hà Nội
10103 Nam Hà 16 Lý Thường Kiệt Đà Nẵng
null Cẩm Tú 14 An Thượng Hải Phòng

4. FULL JOIN

Syntax

Note: FULL JOIN hoặc FULL OUTER JOIN đều được nhé.

Example

Thực hiện so sánh bảng [Orders] và [Customers].

Result

OrderID CustomerName Address City
10101 Nam Hà 16 Lý Thường Kiệt Đà Nẵng
10102 Văn Thanh 10 Hùng Vương Hà Nội
10103 Nam Hà 16 Lý Thường Kiệt Đà Nẵng
10104 null null null
null Cẩm Tú 14 An Thượng Hải Phòng

5. SELF JOIN

–> Ngoài việc join từ 2 bảng thì chúng ta có thể tự join chính nó để truy vấn và tìm ra những dữ liệu cần dùng tới.

Syntax

Example

Bảng [Orders] được kết hợp ngay với chính nó, để tìm ra các OrderID có cùng OrderDate

Result

Order01 Order02 OrderDate
10101 10102 2021-09-18
10103 10104 2021-09-20

Different Types of SQL JOINs

Dưới đây là một cái nhìn tổng quát để bạn dễ dàng so sánh sự khác nhau giữa các loại Joins. Hi vọng bài viết sẽ có ích giúp bạn.

Bài viết có tham khảo https://www.w3schools.com

Chia sẻ bài viết ngay