SQL里 distinct 和 union 的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL里 distinct 和 union 的区别?相关的知识,希望对你有一定的参考价值。

为什么相同的目的分别用这两个结果却不同? 还是我用错了?谢谢

select distinct和union 都会去掉重复的记录,这点的确是有相似的地方。
但是,如果一个表中本来就有重复的记录,你想去除重复的记录,就只能使用select distinct 。
但是如果是想把不只一个表上下合并起来,并去除重复的记录,那么就用union 。
这两个命令使用的用途完全不一样。
参考技术A select distinct和union 都会去掉重复的记录,这点的确是有相似的地方

但是,如果一个表中本来就有重复的记录,你想去除重复的记录,就只能使用select distinct from
tb

但是如果是想把不只一个表上下合并起来,并去除重复的记录,那么就用union

这两个命令使用的用途完全不一样。本回答被提问者采纳
参考技术B union默认是union distinct
使用时应该没有区别,除非你的语句条件有区别
参考技术C 你的sql语句是什麼样的?

sql中,只使用union和先union all再distinct,两种方式哪个效率高?

sql中,只使用union和先union all再distinct,两种方式哪个效率高?

distinct通常不建议使用,效率较低;union all 和union 而言,union all效率更高;原因是:union 相当于多表查询出的数据进行去重然后再进行排序后返回,而union all是多表查询合并去重后就直接返回 参考技术A Distinct可以说是数据查询中最耗时最耗性能的操作了,去重统计是数据查询不可言说的痛,所以不到万不得已不要用,另外,union all 后在distinct的效率如果更高的话,那union存在的意义是什么?所以可想而知,union的效率更高啊 参考技术B 在大数据量的情况下distinct + union all 性能大于 UNION 的性能

以上是关于SQL里 distinct 和 union 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

sql中,只使用union和先union all再distinct,两种方式哪个效率高?

SQL 里LEFT JOIN 和UNION 怎么一同使用?

mysql union和union all的区别

unique 和distinct 的区别

unionunion all distinct的区别和用途

union和union all的区别