sql语句优化,求大佬提提意见

现在有五张审批表,表中有几个相同的字段,现在的需求是把五张表的公共字段全部放在一起展现
因为考虑到查询的次数较多,所以用到了视图.
select djh,djlx,ywlx from v_zb_sqmxb
UNION
select djh,djlx,ywlx from v_zb_wjgmsqmxb
UNION
select djh,djlx,ywlx from v_zb_bzjmxb
UNION
select djh,djlx,ywlx from v_zb_bzjsqmxb
UNION
select djh,djlx,ywlx from v_zb_zbmxb;

sql语句如上.但是总感觉比较复杂啊,有没有大佬可以优化下?

5个回答

并不会复杂,感觉应该用union all

简单明了,就这么写就对了

UNION用的比较多union all是直接连接,取到得是所有值,记录可能有重复 union 是取唯一值,
union会自动压缩多个结果集合中的重复结果
union all则将所有的结果全部显示出来,不管是不是重复。
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION

union All:对两个结果集进行并集操作,包括重复行,不进行排序;

这个查询语句有很大的优化空间,其中5个select 和 from关键字就可以合成一个

就按你写的,放到试图里面去,下次查询试图就可以了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问