`
flm_llx
  • 浏览: 60976 次
  • 性别: Icon_minigender_1
  • 来自: 应县
社区版块
存档分类
最新评论

外联接

阅读更多
外联接。外联接可以是左向外联接、右向外联接或完整外部联接。
在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定:
LEFT JOIN 或 LEFT OUTER JOIN。
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
RIGHT JOIN 或 RIGHT OUTER JOIN。
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
FULL JOIN 或 FULL OUTER JOIN。
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件。将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。
Microsoft® SQL Server™ 2000 对在 FROM 子句中指定的外联接使用以下 SQL-92 关键字:
LEFT OUTER JOIN 或 LEFT JOIN
RIGHT OUTER JOIN 或 RIGHT JOIN
FULL OUTER JOIN 或 FULL JOIN
SQL Server 支持 SQL-92 外联接语法,以及在 WHERE 子句中使用 *= 和 =* 运算符指定外联接的旧式语法。由于 SQL-92 语法不容易产生歧义,而旧式 Transact-SQL 外联接有时会产生歧义,因此建议使用 SQL-92 语法。
使用左向外联接
假设在 city 列上联接 authors 表和 publishers 表。结果只显示在出版商所在城市居住的作者(本例中为 Abraham Bennet 和 Cheryl Carson)。
若要在结果中包括所有的作者,而不管出版商是否住在同一个城市,请使用 SQL-92 左向外联接。下面是 Transact-SQL 左向外联接的查询和结果:
USE pubs
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors a LEFT OUTER JOIN publishers p
    ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
下面是结果集:
au_fname              au_lname                        pub_name         
-------------------- ------------------------------ -----------------
Reginald              Blotchet-Halls                  NULL
Michel                DeFrance                        NULL
Innes                 del Castillo                    NULL
Ann                   Dull                            NULL
Marjorie              Green                           NULL
Morningstar           Greene                          NULL
Burt                  Gringlesby                      NULL
Sheryl                Hunter                          NULL
Livia                 Karsen                          NULL
Charlene              Locksley                        NULL
Stearns               MacFeather                      NULL
Heather               McBadden                        NULL
Michael               O'Leary                         NULL
Sylvia                Panteley                        NULL
Albert                Ringer                          NULL
Anne                  Ringer                          NULL
Meander               Smith                           NULL
Dean                  Straight                        NULL
Dirk                  Stringer                        NULL
Johnson               White                           NULL
Akiko                 Yokomoto                        NULL
Abraham               Bennet                          Algodata Infosystems
Cheryl                Carson                          Algodata Infosystems
(23 row(s) affected)
不管是否与 publishers 表中的 city 列匹配,LEFT OUTER JOIN 均会在结果中包含 authors 表的所有行。注意:结果中所列的大多数作者都没有相匹配的数据,因此,这些行的 pub_name 列包含空值。
使用右向外联接
假设在 city 列上联接 authors 表和 publishers 表。结果只显示在出版商所在城市居住的作者(本例中为 Abraham Bennet 和 Cheryl Carson)。SQL-92 右向外联接运算符 RIGHT OUTER JOIN 指明:不管第一个表中是否有匹配的数据,结果将包含第二个表中的所有行。
若要在结果中包括所有的出版商,而不管城市中是否还有出版商居住,请使用 SQL-92 右向外联接。下面是 Transact-SQL 右向外联接的查询和结果:
USE pubs
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors AS a RIGHT OUTER JOIN publishers AS p
    ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
下面是结果集:
au_fname              au_lname                  pub_name            
-------------------- ------------------------ --------------------
Abraham               Bennet                    Algodata Infosystems
Cheryl                Carson                    Algodata Infosystems
NULL                  NULL                      Binnet & Hardley
NULL                  NULL                      Five Lakes Publishing
NULL                  NULL                      GGG&G
NULL                  NULL                      Lucerne Publishing
NULL                  NULL                      New Moon Books
NULL                  NULL                      Ramona Publishers
NULL                  NULL                      Scootney Books
(9 row(s) affected)
使用谓词(如将联接与常量比较)可以进一步限制外联接。下例包含相同的右向外联接,但消除销售量低于 50 本的书籍的书名:
USE pubs
SELECT s.stor_id, s.qty, t.title
FROM sales s RIGHT OUTER JOIN titles t
    ON s.title_id = t.title_id
    AND s.qty > 50
ORDER BY s.stor_id ASC
下面是结果集:
stor_id qty     title                                                    
------- ------ ---------------------------------------------------------
(null) (null) But Is It User Friendly?                                  
(null) (null) Computer Phobic AND Non-Phobic Individuals: Behavior
             Variations                 
(null) (null) Cooking with Computers: Surreptitious Balance Sheets      
(null) (null) Emotional Security: A New Algorithm                       
(null) (null) Fifty Years in Buckingham Palace Kitchens                 
7066    75      Is Anger the Enemy?                                       
(null) (null) Life Without Fear                                         
(null) (null) Net Etiquette                                             
(null) (null) Onions, Leeks, and Garlic: Cooking Secrets of the
             Mediterranean                 
(null) (null) Prolonged Data Deprivation: Four Case Studies             
(null) (null) Secrets of Silicon Valley                                 
(null) (null) Silicon Valley Gastronomic Treats                         
(null) (null) Straight Talk About Computers                             
(null) (null) Sushi, Anyone?                                            
(null) (null) The Busy Executive's Database Guide                       
(null) (null) The Gourmet Microwave                                     
(null) (null) The Psychology of Computer Cooking                        
(null) (null) You Can Combat Computer Stress!                           
(18 row(s) affected)
有关谓词的更多信息,请参见 WHERE。
使用完整外部联接
若要通过在联接结果中包括不匹配的行保留不匹配信息,请使用完整外部联接。Microsoft® SQL Server™ 2000 提供完整外部联接运算符 FULL OUTER JOIN,不管另一个表是否有匹配的值,此运算符都包括两个表中的所有行。
假设在 city 列上联接 authors 表和 publishers 表。结果只显示在出版商所在城市居住的作者(本例中为 Abraham Bennet 和 Cheryl Carson)。SQL-92 FULL OUTER JOIN 运算符指明:不管表中是否有匹配的数据,结果将包括两个表中的所有行。
若要在结果中包括所有作者和出版商,而不管城市中是否有出版商或者出版商是否住在同一个城市,请使用完整外部联接。下面是 Transact-SQL 完整外部联接的查询和结果:
USE pubs
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors a FULL OUTER JOIN publishers p
    ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
下面是结果集:
au_fname              au_lname                      pub_name            
-------------------- ---------------------------- --------------------
Reginald              Blotchet-Halls                NULL
Michel                DeFrance                      NULL
Innes                 del Castillo                  NULL
Ann                   Dull                          NULL
Marjorie              Green                         NULL
Morningstar           Greene                        NULL
Burt                  Gringlesby                    NULL
Sheryl                Hunter                        NULL
Livia                 Karsen                        NULL
Charlene              Locksley                      NULL
Stearns               MacFeather                    NULL
Heather               McBadden                      NULL
Michael               O'Leary                       NULL
Sylvia                Panteley                      NULL
Albert                Ringer                        NULL
Anne                  Ringer                        NULL
Meander               Smith                         NULL
Dean                  Straight                      NULL
Dirk                  Stringer                      NULL
Johnson               White                         NULL
Akiko                 Yokomoto                      NULL
Abraham               Bennet                        Algodata Infosystems
Cheryl                Carson                        Algodata Infosystems
NULL                  NULL                          Binnet & Hardley
NULL                  NULL                          Five Lakes Publishing
NULL                  NULL                          GGG&G
NULL                  NULL                          Lucerne Publishing
NULL                  NULL                          New Moon Books
NULL                  NULL                          Ramona Publishers
NULL                  NULL                          Scootney Books
(30 row(s) affected)
分享到:
评论

相关推荐

    SQLSERVER内联接外联接交叉联接基本知识

    SQLSERVER内联接外联接交叉联接基本知识

    SQL外联接及其性质.pdf

    SQL外联接及其性质.pdf

    访问和更改关系数据,使用MSSQL外联接

    唉,可怜呀,用了这么久的SQL今天头一次用到外连接,效果不错,方法如下: 使用外联接 仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM ...

    外 联 接.rar

    外联接.rar外联接.rar外联接.rar外联接.rar外联接.rar

    中行网银外联标准接口

    中行网银外联标准接口

    C#.net_经典编程例子400个

    第1章 窗体与界面设计 1 1.1 菜单应用实例 2 实例001 带历史信息的菜单 2 实例002 菜单动态合并 3 实例003 像开始菜单一样漂亮的菜单 4 实例004 任务栏托盘菜单 5 实例005 可以拉伸...

    网络安全建设报告.docx

    3.4 安全域划分与防护 10 3.4.1 总体方案 10 3.4.2 核心服务域 11 3.4.3 重要服务域 11 3.4.4 前置业务域 12 3.4.5 管理支撑域 12 3.4.6 内联接入域 13 3.4.7 外联接入域 13 3.4.8 网络基础设施域 1

    数据库内外连接讲解

    外联接可以是左向外联接、右向外联接或完整外部联接。  在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:  1)LEFT JOIN或LEFT OUTER JOIN  左向外联接的结果集包括 LEFT OUTER子句中指定的左...

    几个试题中常考的sql语句

    记载下的几个试题中常考的sql语句,包括嵌套、内联接 、外联接

    1.商业银行外联业务系统-商业银行外联网接入平台探讨[归类].pdf

    1.商业银行外联业务系统-商业银行外联网接入平台探讨[归类].pdf

    sql语句的内联外联 经典面试题

    sql语句的内联外联 查询 集合 经典面试题 值得收藏 大家珍惜哦

    Microsoft SQL Server 2005技术内幕:T-SQL查询

     3.4 外联接  3.5 总结  3.6 练习  3.7 解决方案 第4章 子查询  4.1 独立子查询  4.2 相关子查询  4.3 高级子查询  4.4 总结  4.5 练习  4.6 解决方案 第5章 表表达式  5.1 派生表  5.2 ...

    SQL查询技巧(范例宝典)

     实例357 使用外联接进行多表联合查询 523  10.17 利用IN进行查询 525  实例358 用IN查询表中的记录信息 525  实例359 使用IN引入子查询限定查询范围 526  10.18 交叉表查询 527  实例360 ...

    数据库内联外联等代码.txt

    y由于编程需要各种不同功能的数据库连接,这里整理了常用的数据库内联,外联,交叉连接等代码,直接复制就可以

    SQL Server数据库技术大全 电子书

    2.3.2 外联接(OUTER JOIN)/38 2.3.3 完全联接(FULL JOIN)/39 2.3.4 交叉联接(CROSS JOIN)/40 2.3.5 联接的替代写法/40 2.3.6 联合(UNION)/41 2.4 SQL数据类型/42 2.4.1 精确数字类型/43 2.4.2 近似数字类型/...

    (第一卷)Microsoft.SQL.Server.2008技术内幕:T-SQL语言基础

    3.4 外联接 3.5 总结 3.6 练习 3.7 解决方案 第4章 子查询 4.1 独立子查询 4.2 相关子查询 4.3 高级子查询 4.4 总结 4.5 练习 4.6 解决方案 第5章 表表达式 5.1 派生表 5.2 公用表表达式(CTE) 5.3 ...

    (第二卷)Microsoft SQL Server 2008技术内幕:T-SQL语言基础

    3.4 外联接 3.5 总结 3.6 练习 3.7 解决方案 第4章 子查询 4.1 独立子查询 4.2 相关子查询 4.3 高级子查询 4.4 总结 4.5 练习 4.6 解决方案 第5章 表表达式 5.1 派生表 5.2 公用表表达式...

    C#程序开发范例宝典10

    519 10.16 外联接查询 520 实例355 left outer join查询 521 实例356 right outer join查询 522 实例357 使用外联接进行多表联合查询 523 10.17 利用IN进行查询 525 实例358 用IN查询...

    金诺网安外联监控系统NCS

    金诺网安外联监控系统NCS是一套专门分析内部主机网络连接状态和IP状态的系统,可以对整个网络进行监控,分析网络中各主机的连接状态,及时发现非法外联、IP地址盗用、非法IP使用和非正常时间访问等各种可疑的行为。

Global site tag (gtag.js) - Google Analytics