设为首页 加入收藏

TOP

mysql---union的用法
2015-07-24 10:18:19 来源: 作者: 【 】 浏览:1
Tags:mysql---union 用法

union的作用很简单用来合并两条sql的结果集

语法: SQL1 UNION SQL2

现有一张价格表

\

要求:<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPsfzs/a82yYjMjY2ODQ7tc3T2jIwMDC6zbzbJiMyNjY4NDu439PaMzAwMLXEyczGt6OssrvE3NPDb3K6zW5vdCBiZXR3ZWVuoa2hrWFuZDwvcD4KPHA+PHN0cm9uZz7LvMK3o7o8L3N0cm9uZz7O0sPHv8nS1M/Ix/Oz9rXN09oyMDAwtcTJzMa3tcO1vb3hufu8rzE8L3A+CjxwPtTZx/Oz9rjf09ozMDAwtcTJzMa3tcO1vb3hufu8rzI8L3A+CjxwPtTZwPvTw3VuaW9uus+yor3hufu8rzG6zb3hufu8rzI8L3A+CjxwPjxpbWcgc3JjPQ=="https://www.cppentry.com/upload_files/article/57/1_zv41j__.jpg" alt="\">

什么时候才允许使用union?

答:只要两个结果集的列数相同就可以使用,即使字段类型不相同,也可以使用。

\

第一个结果集有2列,第二个结果集有1列,运行后提示列数不一样的提示。

\

列数相同,但字段类型不同。如goods_name是字符类型而goods_id是整形,但同样可以union。值得注意的是union后字段的名称以第一条SQL为准


关于union的排序

\

可见内层排序没有发生作用,那现在试试在外层排序

\

可见外层排序发生了作用

那是不是内层排序就没有用了呢,其实换个角度想想内层先排序,外层又排序,明显内层排序显得多余,所以MYSQL优化了SQL语句,不让内层排序起作用。要想内层排序起作用,必须要使内层排序的结果能影响最终的结果。如:加上limit

\

这样内层排序就起作用了


若两次有重复的行出现会怎样?

再创建2个表,

表A

\

表B

\

表A和表B中有两条相同的记录‘王五’,‘小高’

现在使用union看一下结果

\

可以看到‘王五’和‘小高’只有一条记录,所以另一条记录被覆盖了,要想不被覆盖可以使用union all


如图所示,‘王五’和‘小高’没有被覆盖

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇推荐一款免费的SQLsever的备份软.. 下一篇MYSQL添加远程用户或允许远程访问..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python 数据分析与可 (2025-12-26 21:51:20)
·从零开始学Python之 (2025-12-26 21:51:17)
·超长干货:Python实 (2025-12-26 21:51:14)
·为什么 Java 社区至 (2025-12-26 21:19:10)
·Java多线程阻塞队列 (2025-12-26 21:19:07)