`
flm_llx
  • 浏览: 62572 次
  • 性别: 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外联接及其性质 SQL外联接是一种重要的关系代数运算,在数据库查询中扮演着关键角色。外联接的主要特点是将两个表中的数据结合起来,产生一个新的结果集。外联接可以分为左右外联接和全外联连接。 外联接的定义...

    _网银外联平台用户手册(Jar包版)_V1.11_201901241

    【网银外联平台用户手册】是针对使用Java开发的企业网银系统与银行外联平台进行接口对接的指导文档。该手册主要介绍了如何利用Jar包版本的外联平台实现与银行系统的交互,无需安装额外的客户端服务。手册的版本为V...

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

    外联接(Outer Join)是处理多个表之间关联的重要工具,它允许我们获取那些在一个表中有但在另一个表中没有对应匹配的数据。本文将详细介绍如何使用MSSQL外联接来访问和更改关系数据。 首先,理解不同类型的外联接...

    外 联 接.rar

    在IT行业中,外联接(Outer Join)是数据库查询中的一种关键操作,它允许我们从一个或多个表中检索数据,即使某些记录在另一个表中没有匹配。这与内联接(Inner Join)不同,内联接只返回两个表中都有匹配记录的结果...

    银行外联网络安全项目解决方案全攻略.pdf

    - 统一规范:所有外联接入需遵循统一的安全标准。 - 集中接入:减少分散接入点,降低风险。 - 逐步过渡:逐步实施安全措施,确保不影响业务连续性。 2. **建立统一规划的外联网络安全防御体系**: - 设计安全的...

    2019-6_移动存储管理及非法外联管理方案.pptx

    移动存储管理及非法外联管理方案是针对当前企业网络安全中常见的两大挑战——移动存储设备的滥用和非法外联行为——而设计的一种综合解决方案。该方案旨在保护企业的信息安全,防止恶意代码通过移动存储设备传播,...

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

    SQL语句的内联外联经典面试题 SQL语句的内联外联是一种常见的数据库查询技术,它可以根据不同的连接方式将多个表连接起来,提高查询效率和数据整合性。在面试中,SQL语句的内联外联经典面试题是一个非常重要的考察...

    互联网医院外联平台接口文档.docx

    "互联网医院外联平台接口文档" 本文档提供了互联网医院外联平台接口文档的详细信息,涵盖其意义、功能、使用说明、技术支持、注意事项等方面。互联网医院外联平台接口文档是连接医疗行业数字化未来的重要工具,确保...

    中行网银外联标准接口

    ### 中行网银外联标准接口发展概述及关键知识点 #### 一、接口发展历程与重要变更 中行网银外联标准接口自2012年首次发布以来,经过多次迭代和完善,逐步增加了多种功能和服务,以满足企业和个人用户的多元化需求...

    数据库多表联接PPT学习教案.pptx

    本教程主要介绍了如何在SQL中进行多表联接,包括表的别名、内联接、外联接和自联接等关键知识点。 首先,使用表的别名可以简化SQL语句,提高可读性。别名的设定有两种方式:一是直接在表名后跟AS,如`SELECT * FROM...

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

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

    8#-第8章.ppt

    3. **外联接**(Outer Join):分为左外联接(Left Outer Join)、右外联接(Right Outer Join)和全外联接(Full Outer Join)。外联接会返回所有匹配的行,以及左表或右表(或两者)中即使没有匹配项的所有行。 -...

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

    【商业银行外联网接入平台】是商业银行与监管机构、合作伙伴进行信息交流的重要渠道,它是银行发展中间业务的关键基础设施。外联网连接了诸如证券公司、保险公司、税务机构、电力公司等多个业务合作单位,支持如证...

    几个试题中常考的sql语句

    外联接分为左外联接、右外联接和全外联接。其中,左外联接返回左表的所有记录以及右表中与之匹配的记录;若右表中没有匹配,则用NULL填充。 - **左外联接示例**: ```sql SELECT * FROM S LEFT JOIN SC ON S.S# =...

    如何使用SQL多表联接

    本章将详细介绍几种不同的联接类型,包括内联接、外联接、交叉联接和自联接,以及如何使用表的别名来简化查询。 首先,联接(JOIN)是SQL中用于合并来自两个或更多表的数据的关键字。当处理含有共享字段的多个表时...

    最新的大学oracle期末考试卷

    A和B选项都使用了外联接,但C选项使用了等值连接,并且添加了额外的WHERE条件,所以它没有使用外联接。 这些知识点涵盖了Oracle数据库管理系统的基础,包括实例组件、数据库结构、SQL查询语法、约束定义以及联接...

    数据库原理模拟试卷三(答案)(常用版).doc

    10. 外联接:外联接允许保留不匹配的元组,使得结果关系的大小可能会比自然连接大。 11. 排他锁:排他锁(EXCLUSIVE LOCK)允许事务读取和写入锁定的数据项,不允许其他事务进行同样的操作。 12. 全局约束:SQL中...

    数据库考试题目PPT课件.pptx

    - 外部并是外联接的另一种形式,它合并了左外联接和右外联接的结果,所以属性个数可能大于任意单个关系。 3. **事务的ACID属性**: - **原子性(Atomicity)**:事务中的所有操作要么全部完成,要么全部不完成,...

Global site tag (gtag.js) - Google Analytics