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

来源:4-6 数据操作语言:表连接查询(三)

stonesun1314

2022-11-09 10:39:01

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://img.mukewang.com/climg/636b128a09f408c404580284.jpg

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

写回答

1回答

好帮手慕小尤

2022-11-09

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

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

祝学习愉快!

0

0 学习 · 9886 问题

查看课程