最新的Web开发教程
 

SQL连接


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 :返回所有行的时候没有在表中的一个匹配