Mic*_*han 25
Union会更快,因为它只是传递第一个SELECT语句,然后解析第二个SELECT语句并将结果添加到输出表的末尾.
Join将遍历两个表的每一行,在另一个表中查找匹配项,因此需要进行更多处理,因为每行都在搜索匹配的行.
通过Union,我的意思是Union All,因为它似乎足以满足您的目标.虽然普通联盟通常比加盟更快.
我不同意他的看法.从技术上讲,无论您的加入有多好,"加入"仍然比纯连接更昂贵.我发了一篇博文,在我的博客codePERF [dot] net上证明了这一点.实际上,它们有两个完全不同的用途,更重要的是确保您的索引正确并使用正确的工具来完成工作.
从技术上讲,我认为可以使用我的博客文章中的以下2个执行计划来总结:
UNION ALL 执行计划JOIN 执行计划实际上,聚集索引查找的差异可以忽略不计:
Ign*_*ams 22
JOIN并UNION有两个不同的目的.JOIN用于向查询添加其他表,以便添加选择条件和可能的其他列.UNION用于将两个不同查询的结果与相同列组合在一起.问哪个更有效就像问"哪条面包"和"吹风"更"橙".
小智 10
抱歉打破你的派对,但写得好的联合会比工会更快.