最新的Web开发教程
 

SQL FULL OUTER JOIN关键字


SQL FULL OUTER JOIN关键字

在FULL OUTER JOIN关键字返回左表(表1)和右表(表2)所有行。

在FULL OUTER JOIN关键字结合的左右两侧加入了结果。

SQL FULL OUTER JOIN语法

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name ;

SQL FULL OUTER JOIN


演示数据库

在本教程中,我们将使用众所周知的Northwind示例数据库。

下面是从选择"Customers"表:

客户ID 顾客姓名 联系人姓名 地址 邮政编码 国家
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexico D.F. 05023 Mexico

而从选择"Orders"表:

订单ID 客户ID 员工ID 订购日期 ShipperID
10308 2 7 1996-09-18 3
10309 37 3 1996-09-19 1
10310 77 8 1996-09-20 2

SQL FULL OUTER JOIN例

下面的SQL语句选择所有客户,所有订单:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

从结果集的选择可能是这样的:

顾客姓名 订单ID
Alfreds Futterkiste  
Ana Trujillo Emparedados y helados 10308
Antonio Moreno Taqueria 10365
  10382
  10351

注:FULL OUTER JOIN关键字返回所有左表(客户)行,以及所有来自右表(订单)的行。 如果有行"Customers"没有比赛的"Orders" ,或者如果在有行"Orders"没有比赛的"Customers" ,这些行会被列出。