Bài viết sau đây sẽ giới thiệu tới các bạn về sql, SQL Join trong SQL. Chúng ta hãy cùng nhau tìm hiểu bài viết.
Đôi khi chúng ta chọn dữ liệu từ hai bảng để tạo kết quả, Chúng ta thực hiện một kết nối (join).
Các bảng trong cơ sở dữ liệu có thể liên hệ với các bảng khác thông qua các khóa. Một khóa chính (primary key) là một cột với các trị duy nhất cho mỗi hàng. Mục tiêu là ràng buộc dữ liệu, tham chiếu chéo các bảng, không cần lặp lại tất cả dữ liệu trong từng bảng.
Trong bảng "Employees" phía dưới, cột "ID" là khóa chính, nghĩa là cột này không có hai hàng cùng ID. ID dùng phân biệt hai người nếu cả hai có cùng tên.
Khi bạn xem bảng ví dụ phía dưới, chú ý rằng:
Employees:
ID |
Name |
01 |
Hansen, Ola |
02 |
Svendson, Tove |
03 |
Svendson, Stephen |
04 |
Pettersen, Kari |
Orders:
ID |
Product |
01 |
Printer |
03 |
Table |
03 |
Chair |
Chúng ta có thể chọn dữ liệu từ hai bảng bằng cách tham chiếu đến hai bảng, như sau: Ví dụ
Ai đã đăng ký một sản phẩm và đăng ký sản phẩm nào?
SELECT Employees.Name, Orders.Product
FROM Employees, Orders
WHERE Employees.ID = Orders.ID
Kết quả
Name |
Product |
Hansen, Ola |
Printer |
Svendson, Stephen |
Table |
Svendson, Stephen |
Chair |
Ví dụ
Ai đã đăng ký một máy in?
SELECT Employees.Name FROM Employees, Orders WHERE Employees.ID = Orders.ID AND Orders.Product = 'Printer' |
Kết quả
Name |
Hansen, Ola |
HOẶC, chúng ta có thể chọn dữ liệu từ hai bảng với từ khóa JOIN, giống như sau:
Ví dụ INNER JOIN Cú pháp
SELECT field1, field2, field3 FROM first_table INNER JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield |
Ai đã đăng ký một sản phẩm và đăng ký sản phẩm nào?
SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders
ON Employees.ID = Orders.ID
INNER JOIN trả về tất cả các hàng từ hai bảng khi điều kiện được so trùng. Nếu các hàng trong bảng Employees không so trùng trong bảng Orders, hàng đó sẽ không được liệt kê ra. Kết quả
Name |
Product |
Hansen, Ola |
Printer |
Svendson, Stephen |
Table |
Svendson, Stephen |
Chair |
Ví dụ LEFT JOIN Cú pháp
SELECT field1, field2, field3 FROM first_table LEFT JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield |
Liệt kê tất cả nhân viên, và các đăng ký mua của họ nếu có.
SELECT Employees.Name, Orders.Product
FROM Employees
LEFT JOIN Orders
ON Employees.ID = Orders.ID
LEFT JOIN trả về tất cả các hàng từ bảng thứ nhất (Employees), cho dù nó không được so trùng trong bảng thứ hai (Orders). Nếu các hàng trong bảng Employees không so trùng trong bảng Orders, những hàng này cũng được liệt kê.
Kết quả
Name |
Product |
Hansen, Ola |
Printer |
Svendson, Tove |
|
Svendson, Stephen |
Table |
Svendson, Stephen |
Chair |
Pettersen, Kari |
|
Ví dụ RIGHT JOIN
Cú pháp
SELECT field1, field2, field3 FROM first_table RIGHT JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield |
Liệt kê tất cả nhân viên, và các đăng ký mua của họ nếu có.
SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders
ON Employees.ID = Orders.ID
RIGHT JOIN trả về tất cả các hàng từ bảng thứ hai (Orders), cho dù nó không được so trùng trong bảng thứ nhất (Employees). Nếu có bất kỳ hàng nào trong bảng Orders không được so trùng trong bảng Employees, các hàng này cũng được liệt kê. Kết quả
Name |
Product |
Hansen, Ola |
Printer |
Svendson, Stephen |
Table |
Svendson, Stephen |
Chair |
Ví dụ
Ai đăng ký một máy in?
SELECT Employees.Name
FROM Employees
INNER JOIN Orders
ON Employees.ID = Orders.ID
WHERE Orders.Product = 'Printer'
Kết quả
Name |
Hansen, Ola |
Bài viết sau đây sẽ giới thiệu tới các bạn về sql, SQL Alter Table, lợi ích của nó trong
Bài viết sau đây sẽ giới thiệu tới các bạn cách tạo cơ sở dữ liệu và bảng trong sql,
Bài viết sau đây sẽ giới thiệu tới các bạn về Các bí danh (Alias) SQL trong sql server 2005,
Bài viết sau đây sẽ giới thiệu tới các bạn về chuyên mục SQL Group By và SQL Having trong
Bài viết sau đây sẽ giới thiệu với các bạn về các hàm SQL trong sql server 2005, chúng ta
Hiểu về SQL cũng chính là hiểu về các hàm trong đó. Bài viết sau đây sẽ giới thiệu tới
Bài viết này sẽ giúp các bạn hiểu và biết cách xóa trong sql, chúng ta hãy cùng nhau tìm hiểu
Bài viết giới thiệu về SQL Update trong sql server 2005, chúng ta hãy cùng nhau tìm hiểu bài viết
Bài viết sau đây sẽ giới thiệu tới các bạn về SQL INSERT INTO trong sql server 2005. chúng
Bài viết sau đây sẽ giới thiệu tới các bạn về Sql Order By trong sql server 2005. chúng ta hãy