gpt4 book ai didi

带有 SELECT 子句和三个不同表的 MYSQL

转载 作者:行者123 更新时间:2023-11-29 13:01:11 26 4
gpt4 key购买 nike

有这 3 个表

第一个,员工

//Employee
E# ENAME D#
-----------------------
1 ALI 1
2 SITI 2
3 JOHN 2
4 MARY 3
5 CHIRS 3

第二,项目

//PROJECT
P# PNAME D#
-----------------------
1 Computing 1
2 Coding 3
3 Researching 3

三、WORKSON

//WORKSON
E# P# Hours
--------------------
1 1 3
1 2 5
4 3 6

所以我的输出应该是这样的

E#       ENAME      D#       TOTAL HOURS/W
--------------------------------------------
1 ALI 1 8
2 SITI 2 0
3 JOHN 2 0
4 MAY 3 6
5 CHIRS 3 0

显示 0,因为该员工没有要处理的项目。

我目前使用的语句

SELECT E.E#,E.NAME,E.D#,NVL(sum(Hours),0) AS "TOTAL HOURS/W"
FROM Employee E,WORKSON W WHERE E.E#=W.E# OR
GROUP BY E.E#,E.NAME,E.D#;

不知道应该如何选择,然后将显示所有员工,而不仅仅是特定的 E#。输出显示为好像员工没有处理任何项目,它应该显示为 0 值

最佳答案

这可以通过仅加入员工和 WORKSON 来完成

select
e.`E#`,
e.ENAME,
e.`D#`,
coalesce(tot,0) as `TOTAL HOURS/W`
from Employee e
left join
(
select `E#`,
sum(Hours) as tot
from WORKSON
group by `E#`
)w
on w.`E#` = e.`E#`
group by e.`E#`

<强> DEMO

关于带有 SELECT 子句和三个不同表的 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23322153/

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