轻松上手,快乐学习!

SQL JOINS


SQL JOIN

JOIN子句用于组合来自两个或多个表的行,基于它们之间的相关列。

让我们看一下“Orders”表中的选择:

OrderID CustomerID OrderDate
10308 2 1996-09-18
10309 37 1996-09-19
10310 77 1996-09-20

然后,查看“Customers”表中的选择:

CustomerID CustomerName ContactName Country
1 Alfreds Futterkiste Maria Anders Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Mexico
3 Antonio Moreno Taquerнa Antonio Moreno Mexico

请注意,“Orders”表中的“CustomerID”列引用“Customers”表中的“CustomerID”。上面两个表之间的关系是“CustomerID”列。

然后,我们可以创建以下SQL语句(包含INNER JOIN),它选择两个表中具有匹配值的记录:

实例

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

运行实例»

它会产生这样的东西:

OrderID CustomerName OrderDate
10308 Ana Trujillo Emparedados y helados 9/18/1996
10365 Antonio Moreno Taquerнa 11/27/1996
10383 Around the Horn 12/16/1996
10355 Around the Horn 11/15/1996
10278 Berglunds snabbkцp 8/12/1996

不同类型的SQL JOIN

以下是SQL中不同类型的JOIN:

  • (INNER)JOIN:返回两个表中具有匹配值的记录
  • LEFT(OUTER)JOIN:返回左表中的所有记录,以及右表中的匹配记录
  • RIGHT(OUTER)JOIN:返回右表中的所有记录,以及左表中匹配的记录
  • FULL(OUTER)JOIN:当左表或右表中匹配时返回所有记录

SQL INNER JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL OUTER JOIN