union union all 有什么区别?

querystringcom 2008-11-12 05:16:15
想知道啊
...全文
175 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Robin 2008-11-13
  • 打赏
  • 举报
回复
UNION 从结果集中删除重复的行。如果使用 ALL 关键字,那么结果中将包含所有行并且将不删除重复的行。
  • 打赏
  • 举报
回复
不带All的会自动去处重复的内容,但我们有些时候不希望去掉重复的内容,因为那些重复的内容也是有意义的,这时候就需要用ALL来显示告诉SQL需要保留所有数据
kaowa 2008-11-13
  • 打赏
  • 举报
回复
晕啊,结贴率不高嘛
jsjhj2008 2008-11-12
  • 打赏
  • 举报
回复
太浪费分了,union all 就是连接起来,不加任何的操作
union 连接起来后,去除重复的,按从小到大的顺序排列
(*^__^*) 嘻嘻……
tangyong12 2008-11-12
  • 打赏
  • 举报
回复
在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。
实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如:

select * from gc_dfys
union
select * from ls_jg_dfys

这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。
而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:

select * from gc_dfys
union all
select * from ls_jg_dfys

转自:http://dev.csdn.net/article/80641.shtm
快乐乔巴 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lovehongyun 的回复:]
SQL code
select 'a','b'
union
select 'a','b'


select 'a','b'
union all
select 'a','b'



做个比较你就明白了.你运行一下上面的sql
[/Quote]
就是如果查出数据里有2个条以上都一样的话 用union查询出来就一条
如果用union all就是管你重不重复 都显示出来
firein 2008-11-12
  • 打赏
  • 举报
回复
浪费分啊
caofan520 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lovehongyun 的回复:]
SQL code
select 'a','b'
union
select 'a','b'


select 'a','b'
union all
select 'a','b'



做个比较你就明白了.你运行一下上面的sql
[/Quote]

同意
lovehongyun 2008-11-12
  • 打赏
  • 举报
回复

select 'a','b'
union
select 'a','b'


select 'a','b'
union all
select 'a','b'

做个比较你就明白了.你运行一下上面的sql

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧