SQL连接用于排从两个或多个表结合起来。
SQL JOIN
一个SQL JOIN子句用于行从两个或更多表的基础上在它们之间的公共场结合起来。
加入最常见的类型是:SQL INNER JOIN(简单连接)。 一个SQL INNER JOIN回报从哪里连接条件满足多个表的所有行。
让我们来看看选择从"Orders"表:
订单ID | 客户ID | 订购日期 |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
然后,看看从选择"Customers"表:
客户ID | 顾客姓名 | 联系人姓名 | 国家 |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taqueria | Antonio Moreno | Mexico |
请注意, "CustomerID"列中的"Orders"表指的是"CustomerID"中的"Customers"表。 上面的两个表之间的关系是"CustomerID"列中。
那么,如果我们运行下面的SQL语句(包含内部联接):
例
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM
Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
试一试» 它会产生这样的事情:
订单ID | 顾客姓名 | 订购日期 |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taqueria | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbkop | 8/12/1996 |
不同的SQL连接
之前,我们将继续与例子中,我们将列出类型的不同SQL连接,你可以使用:
- INNER JOIN :返回的所有行的时候有两个表中至少有一个匹配
- LEFT JOIN :左表中返回所有行和右表匹配的行
- RIGHT JOIN :右表中返回所有行和左表的匹配的行
- FULL JOIN :返回所有行的时候没有在表中的一个匹配