数据库查询-UNION的合并规则

数据库查询-UNION的合并规则

SELECT d.dname,COUNT(e.deptno)
FROM t_dept d LEFT JOIN t_emp e
ON d.deptno=e.deptno
GROUP BY d.deptno
UNION 
SELECT d.dname,COUNT(*)
FROM t_dept d RIGHT JOIN t_emp e
ON d.deptno=e.deptno
GROUP BY d.deptno;

老师,这段SQL有疑问,UNION左侧的表的字段是 

COUNT(e.deptno)

右侧查询出来的字段是 

COUNT(*)

两个表的字段和名称不一样,结果也不一样,查询出来的如下:

https://img1.sycdn.imooc.com//climg/636b128a09f408c404580284.jpg

UNION是按什么规则合并的,UNION两侧的查询结果不一致如何合并的?

正在回答 回答被采纳积分+1

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

1回答
好帮手慕小尤 2022-11-09 13:31:53

同学你好,1、UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。UNION 内部的 SELECT 语句必须拥有相同数量的列,类型不必完全相同,但是必须可以隐式转换,每条 SELECT 语句中的列的顺序必须相同。

2、同学查询语句已经满足了相同数量的列,列数据类型一致,使用从而导致将字段合并。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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