现在有五张审批表,表中有几个相同的字段,现在的需求是把五张表的公共字段全部放在一起展现
因为考虑到查询的次数较多,所以用到了视图.
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语句如上.但是总感觉比较复杂啊,有没有大佬可以优化下?
并不会复杂,感觉应该用union all
简单明了,就这么写就对了
UNION用的比较多union all是直接连接,取到得是所有值,记录可能有重复 union 是取唯一值,
union会自动压缩多个结果集合中的重复结果
union all则将所有的结果全部显示出来,不管是不是重复。
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION
union All:对两个结果集进行并集操作,包括重复行,不进行排序;
这个查询语句有很大的优化空间,其中5个select 和 from关键字就可以合成一个
就按你写的,放到试图里面去,下次查询试图就可以了