您现在的位置:主页 > 技术中心 > 数据库技术 > Sqlserver

SQL中JOIN和UNION区别、用法及示例

来源:未知 责任编辑:责任编辑 发表时间:2013-11-18 20:57 点击:

1.JOIN和UNION区别
 
join 是两张表做交连后里面条件相同的部分记录产生一个记录集,
union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 。
 
JOIN用于按照ON条件联接两个表,主要有四种:
 
INNER JOIN:内部联接两个表中的记录,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。我理解的是只要记录不符合ON条件,就不会显示在结果集内。  www.2cto.com  
LEFT JOIN / LEFT OUTER JOIN:外部联接两个表中的记录,并包含左表中的全部记录。如果左表的某记录在右表中没有匹配记录,则在相关联的结果集中右表的所有选择列表列均为空值。理解为即使不符合ON条件,左表中的记录也全部显示出来,且结果集中该类记录的右表字段为空值。
 
RIGHT JOIN / RIGHT OUTER JOIN:外部联接两个表中的记录,并包含右表中的全部记录。简单说就是和LEFT JOIN反过来。
FULL JOIN / FULL OUTER JOIN:完整外部联接返回左表和右表中的所有行。就是LEFT JOIN和RIGHT JOIN和合并,左右两表的数据都全部显示。
 
JOIN的基本语法:
Select table1.* FROM table1 JOIN table2 ON table1.id=table2.id
sql写法
内连接inner join:
SELECT msp.name, party.name
FROM msp JOIN party ON party=code
SELECT msp.name, party.name
FROM msp inner JOIN party ON party=code
 
左连接left join :
SELECT msp.name, party.name
FROM msp LEFT JOIN party ON party=code
  www.2cto.com  
右连接right join :
SELECT msp.name, party.name
FROM msp RIGHT JOIN party ON msp.party=party.code
 
全连接(full join):
SELECT msp.name, party.name
FROM msp FULL JOIN party ON msp.party=party.code
 
UNION运算符
 
将两个或更多查询的结果集组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。UNION的结果集列名与UNION运算符中第一个Select语句的结果集的列名相同。另一个Select语句的结果集列名将被忽略。
其中两种不同的用法是UNION和UNION ALL,区别在于UNION从结果集中删除重复的行。如果使用UNION ALL 将包含所有行并且将不删除重复的行。
 
UNION和UNION ALL的区别:
 
union 检查重复
union all 不做检查
比如 select 'a' union select 'a' 输出就是一行 a
比如 select 'a' union all select 'a' 输出就是两行 a
 
2. 通过下面的例子,可以清晰的看出和理解2者的区别
实例1 典型的二表连接演示
假定有两个表Table1和Table2,其包含的列和数据分别如表1.1和表1.2所示。
 
表1.1 Table1数据库表
 
ColumnA
ColumnB
ColumnC
X1
Y1
Z1
X2
Y2
Z2
X3
Y3
Z3
 
表1.2 Table2数据库表
  www.2cto.com   
ColumnA
ColumnD
ColumnE
X1
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

推荐热点

  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • SQL编程(一)
  • LINUX上RMAN自动备份脚本
  • sql server面试题
  • 浅谈SQL Server中的事务日志(三)----在简单恢复模式
  • SQL小技巧系列 --- 行转列合并
  • 如何将多个SQL查询统计结果一次显示出来
  • sql server 列转行
?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
Copyright © 2004-2024 上海卓卓网络科技有限公司