作用:
union的作用简单来说就是合并两个sql的结果集
语法:
SQL1 UNION SQL2
什么时候允许使用union?
答:只要两个结果集的列数相同就可以使用,即使字段类型不相同,也可以使用。
如果第一个结果集有2列,第二个结果集有1列,运行后有提示列数不一样的提示。
列数相同,但字段类型不同,但同样可以union。
值得注意的是union后字段的名称以第一条SQL为准
关于union的排序:
select * from a where a.no>2000 order by no desc union select * from b where b.no<2000 order by no desc
内层先排序,外层又排序,明显内层排序显得多余,所以MYSQL优化了SQL语句,不让内层排序起作用。
要想内层排序起作用,必须要使内层排序的结果能影响最终的结果。如:加上limit
若两次有重复的行出现会怎样?
重复的记录会被覆盖,要想不被覆盖可以使用 union all
参考:https://blog.csdn.net/yuxin6866/article/details/52190772