UNION和UNION ALL的SQL详细用法

在开发中,有些数据的存储可能涉及到分库分表,查询的时候,可能需要查询所有的分表,这个时候,就需要用到UNION或者UNION ALL,下面介绍一下UNION的用法以及与UNION ALL的区别:

UNION操作符用于合并两个或多个SELECT语句的结果集,这里需要注意的是:UNION内部的SELECT语句必须拥有相同数量的

列,列也必须拥有相似的数据类型,同时,每条SELECT语句中列的顺序必须相同。

UNION语法:

  1. SELECT column_name(s) FROM table_name1
  2. UNION
  3. SELECT column_name(s) FROM table_name2

union操作符合并的结果集,不会允许重复值,如果允许有重复值的话,使用UNION ALL.

UNION ALL语法:
  1. SELECT column_name(s) FROM table_name1
  2. UNION ALL
  3. SELECT column_name(s) FROM table_name2
UNION结果集中的列名总等于union中第一个select语句中的列名。

这里我就不举例子说明,重点总结下我在项目开发中遇到的问题:1、由于需要合并十个select语句,写法上需要用到sql中<foreach>;.2、在写sql语句是,用到了order by,要用括号区分开,要不会报错。

sql语句写法:

  1. < select id= "getFourteenHotPost" parameterType= "map" resultMap= "productCommentsInfoAndroid">
  2. select t.comments_id,t.product_id,t.comment,t.order_path from (
  3. <foreach collection= "tableNames" item= "item" separator= "UNION ALL">
  4. ( SELECT c.comments_id,c.product_id,c.comment,i.order_path,c.p_index,c.t_index,c.title,c.time
  5. FROM ${item} as c left join `gshop_comments_img` as i on c.comments_id = i.comments_id
  6. where c.object_type= 2 and c.display= 1 and c.is_show= 1
  7. and c.t_index= 1
  8. GROUP BY c.product_id ORDER BY c.p_index asc,c.t_index desc,c.title desc,c.time desc limit 14)
  9. </foreach>) t
  10. GROUP BY t.product_id ORDER BY t.p_index asc,t.t_index desc,t.title desc,t.time desc limit 14
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值