Inner Join là gì?

INNER JOIN dùng để lấy dữ liệu ra từ cả hai bảng, kết quả là tất cả các record đáp ứng được điều kiện JOIN.

INNER JOIN là loại JOIN Phổ biến nhất, INNER JOIN chính là JOIN mặc định của SQL. Khi bạn chỉ viết JOIN, đó có nghĩa là INNER JOIN.

Để dể hình dùng, ta nhìn vào hình dưới đây.

Minh họa inner join

Kết quả của INNER JOIN sẽ là phần chung của hai bảng.

Cú pháp:

SELECT Tên_Các_Cột
FROM Bảng_1
INNER JOIN Bảng_2
ON Bảng_1.Tên_Cột = Bảng_2.Tên_Cột;

Lưu ý: điều kiện JOIN thường là cặp khóa ngoại và khóa chính.

Ví dụ 1: JOIN hai bảng Customers và Orders với nhau trong database NorthWind.

USE northwind

GO

SELECT Customers.ContactName ,
       Customers.Address ,
       Customers.Phone ,
       Orders.OrderID ,
       Orders.ShipAddress
  FROM
       Customers INNER JOIN Orders
       ON Customers.CustomerID = Orders.CustomerID
  ORDER BY Customers.ContactName;

 

Join hai bảng Customers và Orders

Ví dụ 2: Truy vấn trong database NorthWind chỉ ra, các Product ứng với từng Order.

Ta thấy, bảng Orders, Order Details và Products có liên kết với nhau. Do vậy ta phải dùng câu lệnh JOIN cho ba bảng để giải bài toán này.

Lược đồ quan hệ giữa các bảng

USE northwind

GO

SELECT Orders.OrderID ,
       Orders.ShipAddress,
         Products.ProductName
  FROM
       Orders INNER JOIN [Order Details]
       ON Orders.OrderID = [Order Details].OrderID
           INNER JOIN Products
       ON Products.ProductID = [Order Details].ProductID;

Nhận xét:

1/ Trong câu lệnh JOIN trước tên các cột, ta thường thêm tên bảng. Ta nên làm điều này vì nó chỉ ra chính xác cột nào cần lấy ra. Khi JOIN các bảng với nhau, nhiều khả năng những bảng này tồn tại các cột trùng tên nhau. Do vậy SQL sẽ không biết chính xác cột nào ta đang đề cập đến trong câu lệnh truy vấn, vì vậy sẽ gây lỗi. Bạn nên ghi chính xác cột ở bảng nào ra bằng cú pháp:

[Tên bảng].[Tên cột]

2/ Hình minh họa ở phía trên, thể hiện quan hệ giữa các bảng, đây gọi là lược đồ quan hệ (Database Diagram). Nếu bạn muốn biết cách tạo lược đồ này xin truy cập vào link sau. http://hocdai.com/sql-can-ban/join/tao-luoc-do-quan-he-giua-cac-bang

Tài liệu tham khảo: http://www.w3schools.com/sql/sql_join_inner.asp

Bạn có thể tham khảo cách cài đặt database northwind tại đây:
http://hocdai.com/sql-can-ban/cai-dat-sql/cai-dat-database-north-wind

Các môn học khác

Chương trình thường được xây dựng quanh dữ liệu và logic để xử lý chúng. Nói cách khác: Program = Cấu trúc dữ liệu + giải thuật. Do vậy đây là môn học bắt buộc dành cho các lập trình viên.

HTTP giúp kết nối các máy tính trên mạng Internet thông qua TCP/IP

Khoa học về dinh dưỡng, giáo trình giảm cân cho mọi người.