请查看我的示例查询(如下所示),并让我知道哪个查询的效果会更好以及原因。
方法1:
select team_id,grp_name,grp_desc from
(
select distinct team_id,grp_name,grp_desc from team_table tt where .....
UNION
select team_id,grp_name,grp_desc from sec_team_table stt where ....
UNION
select team_id,grp_name,grp_desc from ter_team_table ttt where...
)
方法2:
select distinct team_id,grp_name,grp_desc from team_table tt where .....
UNION
select team_id,grp_name,grp_desc from sec_team_table stt where ....
UNION
select team_id,grp_name,grp_desc from ter_team_table ttt where...
由于
答案 0 :(得分:4)
在大多数情况下,它们是等效的,因为外部查询中没有转换 - 优化器将以静默方式处理它。
我建议您确保确实需要使用UNION而不是UNION ALL。
事实上,将UNION和UNION的第一部分中使用的DISTINCT结合起来是多余的,因为UNION将确保从最终集中删除重复项(在UNION的子部分和部分部分之间) UNION)。