SQL INNER JOIN 关键字
SQL INNER JOIN 关键字
INNER JOIN关键字选择两个表中具有匹配值的记录。
INNER JOIN语法
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
演示数据库
在本教程中,我们将使用着名的Northwind示例数据库。
以下是“Orders”表中的选择:
OrderID |
CustomerID |
EmployeeID |
OrderDate |
ShipperID |
10308 |
2 |
7 |
1996-09-18 |
3 |
10309 |
37 |
3 |
1996-09-19 |
1 |
10310 |
77 |
8 |
1996-09-20 |
2 |
并从“Customers”表中选择:
CustomerID |
CustomerName |
ContactName |
Address |
City |
PostalCode |
Country |
1 |
Alfreds Futterkiste |
Maria Anders |
Obere Str. 57 |
Berlin |
12209 |
Germany |
2 |
Ana Trujillo Emparedados y helados |
Ana Trujillo |
Avda. de la Constituciуn 2222 |
Mйxico D.F. |
05021 |
Mexico |
3 |
Antonio Moreno Taquerнa |
Antonio Moreno |
Mataderos 2312 |
Mйxico D.F. |
05023 |
Mexico |
SQL INNER JOIN 实例
以下SQL语句选择包含客户信息的所有订单:
实例
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
运行实例»
注意:只要列之间存在匹配项,INNER JOIN关键字就会选择两个表中的所有行。如果“订单”表中有“客户”中没有匹配项的记录,则不会显示这些订单!
JOIN 三个表
以下SQL语句选择包含客户和发货人信息的所有订单:
实例
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
运行实例»