gpt4 book ai didi

sql - 连接表时如何显示未使用的外键值

转载 作者:行者123 更新时间:2023-12-02 06:07:21 25 4
gpt4 key购买 nike

我有 2 个表,emp 和 dept(员工和部门)。假设我想显示每个部门所有薪水的总和,我可以使用类似的东西:

select sum(sal), deptno
from emp
group by deptno

现在可以了,但是假设列表中有一个部门没有员工,我希望它也显示出来,我该怎么做?我试过连接,nvl 函数,但到目前为止运气不好。例如,这有效,但不会显示空部门:

select sum(emp.sal), dept.deptno
from emp, dept
where emp.deptno=dept.deptno
group by dept.deptno

在此先感谢您的帮助!

最佳答案

LEFT JOIN 可以解决这个问题:

select coalesce(sum(emp.sal),0), dept.deptno
from dept
left join emp on emp.deptno=dept.deptno
group by dept.deptno

您应该始终显式声明您的联接,以便您可以在需要时更改它们。隐式连接始终是 INNER JOIN

此外,当部门没有员工时,我使用 COALESCE 更改查询以显示 0 而不是 NULL

关于sql - 连接表时如何显示未使用的外键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7667073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com