码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server基础:Join

时间:2016-03-11 10:15:53      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:


3.Join(麻蛋  废话不多说 有图有真相)

测试数据脚本

技术分享
 1 CREATE TABLE Atable
 2   ( 
 3      S#    INT, 
 4      Sname nvarchar(32), 
 5      Sage  INT, 
 6      Sfrom  nvarchar(8) 
 7   ) 
 8 
 9 
10  insert into Atable 
11  select 1,N刘一,18,NA union all
12  select 2,N钱二,19,NA union all
13  select 3,N张三,17,NA union all
14  select 4,N李四,18,NA 
15 
16  
17 
18 
19  CREATE TABLE Btable
20   ( 
21      S#    INT, 
22      Sname nvarchar(32), 
23      Sage  INT, 
24      Sfrom  nvarchar(8) 
25   ) 
26 
27 
28  insert into Btable
29  select 1,N李四,18,NB union all
30  select 2,Ntom,19, NB union all
31  select 3,N刘一,17,NB union all
32  select 4,Njack,18,NB
View Code

数据表

技术分享

1)cross join:交叉连接不需要任何连接条件。两个表的的数据直接进行笛卡尔积运算。

SELECT * FROM Atable as A  cross join Btable as B order by A.S#

技术分享

2)inner join == join    内连接的功能是,把两个表相关联的记录列出来,必须是相关联的记录。

SELECT * FROM Atable as A  INNER JOIN Btable as B ON A.Sname = B.Sname

技术分享

3)left outer join == left join   产生表B的完全集,而A表中匹配的则有值,没有匹配的则以null值取代。

SELECT * FROM Atable as A left outer join Btable as B ON A.Sname = B.Sname

技术分享

4)right outer join == right jion  产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。

SELECT * FROM Atable as A right outer join Btable as B ON A.Sname = B.Sname

技术分享

5)full outer  join  == full join   产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。

SELECT * FROM Atable as A full join Btable as B ON A.Sname = B.Sname 

技术分享

6)union与union all    区别就是联合查询的时候union会去重,union all不会去重

SELECT Sname FROM Atable  UNION  SELECT Sname FROM  Btable  
SELECT Sname FROM Atable  UNION ALL SELECT Sname FROM  Btable  

技术分享

 

SQL Server基础:Join

标签:

原文地址:http://www.cnblogs.com/cnki/p/5264273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!