为什么当"陈浩"的deptno不为Null的时候,COUNT(*)依然会多一个呢?
根据老师的说法,两表在做链接的时候,右表用Null值链接。以下代码运行后,OPERATIONS(4号部门)会多一个计数:
select d.dname,COUNT(*) from t_dept d left join t_emp e on d.deptno=e.deptno GROUP BY d.deptno;
我在测试时更改陈浩的deptno为10,重新执行上述代码,ACCOUNTING(1号部门)多一个计数,t_emp表里已经没有deptno为Null的记录了,为什么OPERATIONS依然会多出一个呢?
相关截图:
注:t_emp共有15条记录
19
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小小
2021-11-14 14:31:39
同学你好,同学sql语句的运行结果是正确的。同学所说的count(*)会多一个指的是:count(*)列的总数4+5+6+1=16比t_emp表的总记录数多一吗?
两表连接后记录总数为16条,结果如下:
select * from t_dept d left join t_emp e on d.deptno=e.deptno
上述表中总共有16条数据,其中部门10、20、30、40分别有4、5、6、1条数据
select d.deptno,d.dname,COUNT(*) from t_dept d left join t_emp e on d.deptno=e.deptno GROUP BY d.deptno;
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星