1、语法
select ...
union [all | distinct]
select ...
[union [all | distinct]
select ...]
union用来把来自许多select语句的结果组合到一个结果集中。
2、使用条件
只要结果集中的列数一致就可以。
3、注意事项
(1)单独使用union,默认会去重。使用union all,则多个select语句的结果都会显示,即使存在重复的行。
(2)各select语句可以操作相同表,也可以操作不同表。
(3)union对应的若干结果集,列名、列类型可以不一致,生成的结果以第一个结果集的列名为准。
(4)union后的结果集可以进行排序,但一般order by放在最外层,如
(select goods_id, goods_name, shop_price from goods where cat_id=3)
union
(select goods_id, goods_name, shop_price from goods where cat_id=4)
order by shop_price limit 3;
此外,内层的order by如果有limit修饰,也可以起作用,如
(select goods_id, goods_name, shop_price from goods where cat_id=3 order by shop_price desc limit 3)
union
(select goods_id, goods_name, shop_price from goods where cat_id=4 order by shop_price desc limit 2);
部分内容参考自燕十八老师的mysql视频培训笔记,侵删。