赞
踩
在工作中遇到需要将两个模块的数据整合成一块数据分页返回给前段,本来想着分别查询然后将两部分数据后台处理放到一个新的对象返回,后来发现可以使用mysql中的union all将数据直接查询出来,所以通过查询资料以及具体使用情况整理了下union和union all的使用心得.
如果我们需要将两个 select 语句的结果作为一个整体显示出来,我们就需要用到 union 或者 union all 关键字。union (或称为联合)的作用是将多个结果合并在一起显示出来。注意的是两个select语句的查询字段要保持一致。
union 和 union all 的区别是,union 会自动压缩多个结果集合中的重复结果,而 union all 则将所有的结果全部显示出来,不管是不是重复。
SELECT create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'
UNION
SELECT create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'
结果:
SELECT create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'
UNION ALL
SELECT create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'
结果:
SELECT *
FROM(
SELECT msku,create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'
UNION ALL
SELECT create_time,msku FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK') t
综上:
union all 结果字段的顺序以 union all 前面的表字段顺序为准。union all 后面的表的数据会按照字段顺序依次附在后面,而不是按照字段名称匹配。
我们上面以*来表示顺序的不同,其实你写成不同顺序的字段结果一致。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。