SQL 全外连接 关键词
SQL FULL OUTER JOIN 关键字
这 FULL OUTER JOIN
当左表(表1)或右表(表2)记录有匹配时,关键字返回所有记录。
提示: FULL OUTER JOIN
和FULL JOIN
是相同的。
FULL OUTER JOIN 语法
选择 列名称
从 表格1
全外连接 表2
在 表1.列名称 = 表2.列名
在哪里 状况;
笔记: FULL OUTER JOIN
可能会返回非常大的结果集!
演示数据库
在本教程中,我们将使用著名的 Northwind 示例数据库。
以下是“客户”表中的部分内容:
客户ID | 顾客姓名 | 联系人姓名 | 地址 | 城市 | 邮政编码 | 国家 |
---|---|---|---|---|---|---|
1 |
阿尔弗雷德·富特基斯特 | 玛丽亚·安德斯 | 大街 57 号 | 柏林 | 12209 | 德国 |
2 | Ana Trujillo 奉献和赞美 | 安娜·特鲁希略 | 阿夫达。 宪法 2222 | 墨西哥城 | 05021 | 墨西哥 |
3 | 安东尼奥莫雷诺卷饼店 | 安东尼奥·莫雷诺 | 屠宰场 2312 | 墨西哥城 | 05023 | 墨西哥 |
从“订单”表中进行选择:
订单编号 | 客户ID | 员工ID | 订购日期 | 发货人编号 |
---|---|---|---|---|
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 语句选择所有客户和所有订单:
选择客户.客户名称,订单.订单 ID
来自客户
完全外部连接订单 ON 客户.客户 ID=订单.客户 ID
按客户排序。客户名称;
结果集中的选择可能如下所示:
顾客姓名 | 订单编号 |
---|---|
无效的 | 10309 |
无效的 | 10310 |
阿尔弗雷德·富特基斯特 | 无效的 |
Ana Trujillo 奉献和赞美 | 10308 |
安东尼奥莫雷诺卷饼店 | 无效的 |
笔记: 这FULL OUTER JOIN
关键字返回两个表中所有匹配的记录,无论另一个表是否匹配。因此,如果“客户”中有行在“订单”中没有匹配项,或者“订单”中有行在“客户”中没有匹配项,则这些行也会列出。