sql语句中连接查询的例子
本文导语: sql连接查询: 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 返...
sql连接查询:
1)、内连接 inner join
2)、左外连接 left join
返回左边表所有符合条件的记录
3)、右外连接 right join
返回右边表所有符合条件的记录
4)、全连接 full join
左向外连接和右向外连接的合集
5)、交叉连接 cross join
也称笛卡儿积。返回左表中的每一行与右表中所有行的组合
仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件。(www. 脚本学堂)
将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。
Microsoft SQL Server 2000 对在 FROM 子句中指定的外联接使用以下 SQL-92 关键字:
right outer join 或 right join
full outer join 或 full join
一,使用左向外联接
假设在 city 列上联接 authors 表和 publishers 表。结果只显示在出版商所在城市居住的作者(本例中为 Abraham Bennet 和 Cheryl Carson)。
若要在结果中包括所有的作者,而不管出版商是否住在同一个城市,请使用 SQL-92 左向外联接。下面是 Transact-SQL 左向外联接的查询:
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 右向外联接的查询:
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