MYSQL之union的使用

作用:

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

原文地址:https://www.cnblogs.com/sunzhiqiang/p/15045407.html