union 和 union all 都是将两个结果集合合为一个 但是他们使用和效率上来说都有所不同
union 进行连表查询会 筛选重复记录之后对结果集 排序 在返回结果
union all 则不会
所以重效率上来讲 union all 的效率 高于union
大部分应用中不会产生产生重复记录
下面我使用Oracle 中的 emp (员工表) 做个示范:
先看一下表结构
[img]http://xiaohewoai.iteye.com/upload/attachment/132943/8bc27a77-3011-3475-b499-9018fb5b266d.jpg[/img]
使用 union 13 条记录 而且已经按升序 排好了
[img]http://xiaohewoai.iteye.com/upload/attachment/132936/2fa10073-4053-3ef9-9d9f-4a43f421aac3.jpg[/img]
使用union all 15 条记录 没有排序
[img]http://xiaohewoai.iteye.com/upload/attachment/132938/e726f501-f572-326b-9836-1de74557f496.jpg[/img]
union 进行连表查询会 筛选重复记录之后对结果集 排序 在返回结果
union all 则不会
所以重效率上来讲 union all 的效率 高于union
大部分应用中不会产生产生重复记录
下面我使用Oracle 中的 emp (员工表) 做个示范:
先看一下表结构
[img]http://xiaohewoai.iteye.com/upload/attachment/132943/8bc27a77-3011-3475-b499-9018fb5b266d.jpg[/img]
使用 union 13 条记录 而且已经按升序 排好了
[img]http://xiaohewoai.iteye.com/upload/attachment/132936/2fa10073-4053-3ef9-9d9f-4a43f421aac3.jpg[/img]
使用union all 15 条记录 没有排序
[img]http://xiaohewoai.iteye.com/upload/attachment/132938/e726f501-f572-326b-9836-1de74557f496.jpg[/img]