首 页IT知识库翔宇问吧收藏内容
当前位置:翔宇亭IT乐园IT知识库数据库SQL专栏

SQL 的连接查询

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2010-11-30 15:59:11

连接查询主要有这几个:

(1)内连接 inner join

与where相同 select * from @a Aa join @b Bb on Aa.a=Bb.a

(2)左外连接 left join

返回左边表所有符合条件的记录 select * from @a Aa left join @b Bb on Aa.a=Bb.a

(3)右外连接 right join

 返回右边表所有符合条件的记录 select * from @a Aa right join @b Bb on Aa.a=Bb.a

(4)全连接  full join

左向外连接和右向外连接的合集 select * from @a Aa full join @b Bb on Aa.a=Bb.a

(5)交叉连接 cross 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

使用左向外联接

假设在 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

不管是否与 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


本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

Tags:查询 SQL 连接

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2022 biye5u.com. All Rights Reserved.