W3School
JOIN TRONG SQL
Một mệnh đề JOIN được sử dụng để lấy thông tin từ nhiều bảng với điều kiện kết nối thường là các trường key của bảng. Ví dụ, ID của khách hàng trong bảng Đơn hàng có thể JOIN với ID của chính khách hàng đó trong bảng Khách hàng.
Hãy xem bảng “Đơn hàng” sau, bảng ghi nhận các đơn hàng được khách hàng nào MUA qua “CustomerID”:
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
Tiếp đó hãy xem bảng chi tiết của từng “Khách hàng”:
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
Lưu ý : cột “CustomerID” trong bảng “Đơn đặt hàng” tham chiếu đến “CustomerID” trong bảng “Khách hàng”. Mối quan hệ giữa hai bảng trên là cột “ID khách hàng”.
Sau đó, chúng ta có thể tạo câu lệnh SQL sau (có chứa một INNER JOIN
), chọn các bản ghi có giá trị phù hợp trong cả hai bảng:
Kết quả của câu lệnh SQL trên sẽ cho ra thêm CustomerName (Tên khách hàng) qua CustomerID của khách hàng:
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taquería | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbköp | 8/12/1996 |
Bạn có thể download cơ sở dữ liệu Northwind để bắt đầu thực hành tại đây:
- Dành cho Sql Server, MS Access Download
- Dành cho Mysql: Tạo bảng trước với Download Table sau đó hãy điền data với Download Data
- Dành cho Oracle Download
Lưu ý: Tên bảng trong CSDL cho SQL Server thường được viết hoa chữ đầu. Với Mysql thì tên bảng được viết thường. Và với Oracle thì tên bảng toàn bộ được viết hoa. Bạn hãy viết đúng tên bảng trong query của mình nhé.
Trong nội dung bài viết, đôi khi tên bảng được viết dưới dạng tiếng Việt, ví dụ:
- Customers: Khách hàng
- Orders: Đơn hàng
- Employees: Nhân viên
- Shipers: Giao hàng
- Invoices: Hoá đơn
Các loại SQL JOIN khác nhau
Dưới đây là các kiểu khác nhau của các JOIN trong SQL:
Trái (LEFT) nên hiểu là bảng phía trước lệnh join, Phải (RIGHT) nên hiểu là bảng ở sau mệnh đề JOIN
(INNER) JOIN
: Trả về các bản ghi có giá trị phù hợp trong cả hai bảngLEFT (OUTER) JOIN
: Trả về tất cả các bản ghi từ bảng bên trái và các bản ghi phù hợp từ bảng bên phảiRIGHT (OUTER) JOIN
: Trả về tất cả các bản ghi từ bảng bên phải và các bản ghi phù hợp từ bảng bên tráiFULL (OUTER) JOIN
: Trả về tất cả các bản ghi khi có một kết quả phù hợp trong bảng bên trái hoặc bên phải
W3School
- SQL Tutorial
- Cú pháp SQL
- Câu lệnh SQL SELECT
- Câu lệnh SQL SELECT DISTINCT
- WHERE SQL
- Toán tử AND, OR và NOT
- Sắp xếp dữ liệu với ORDER BY
- NULL Trong SQL
- INSERT INTO
- SQL UPDATE
- SQL Delete
- SQL Top
- Hàm MIN MAX trong SQL
- COUNT, AVG và SUM
- SQL Toán tử LIKE
- SQL Wildcards
- Toán tử SQL IN
- SQL BETWEEN
- SQL ALIAS
- SQL JOIN
- SQL INNER JOIN
- LEFT JOIN Trong SQL
- RIGHT JOIN Trong SQL
- SQL FULL OUTER JOIN TRONG SQL
- SQL Self Join
- Toán tử UINON SQL