union是怎么个合并原理?

union是怎么个合并原理?

视频的例子里,我简化一下说明:(select d.dname,count(e.deptno)…………) UNION (select d.dname,count(*)…………),这里其实是有两个d.dname和两个count,这两个count还是聚合不一样的字段,为什么最后输出却只有一个dname和一个count

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。UNION 内部的每个 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型,如果两个表的数据相同,则只显示一个表的数据,count用来统计每组的数据的记录有多少,用于得出记录数,统计的字段只决定了count记录的数据有多少,因此统计字段对于两表合并没有关系。

祝学习愉快~


  • 江民川 提问者 #1
    我意思是怎么确定这列字段最终是显示的哪个select里的?
    2020-05-28 18:34:05
  • 好帮手慕笑蓉 回复 提问者 江民川 #2
    同学,你好。两个表的字段进行了合并,合并字段都属于两个表里的字段,关于最终是显示的哪个select里的,涉及到mysql查询结果的处理规则,同学可以查阅相关资料做一些扩展,相信对同学的会有很大的帮助。 祝学习愉快~
    2020-05-28 19:14:01
  • 江民川 提问者 回复 好帮手慕笑蓉 #3
    我的意思是,有count(e.deptno)和count(*),它凭什么显示的是count(e.deptno),如果再合并其他count字段,输出这一列时mysql怎么知道要输出哪个count呢?
    2020-05-29 08:55:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师