对于我的数据库,拥有这四个表
第一个,部门
//DEPARTMENT
D# DNAME
------------------
1 RESEARCH
2 IT
3 SCIENCE
第二个,员工
//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
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#,ENAME,D# and sum(Hours) as TOTAL HOURS/W
FROM EMPLOYEE,PROJECT,WORKSON
WHERE EMPLOYEE.P#
不知道应该如何选择
最佳答案
您应该使用像这样的左连接。您只需要2个表employee
和workson
。
试试这个查询:
SELECT e_tbl.E#, e_tbl.ENAME, e_tbl.D#,
coalesce(SUM(w_tbl.Hours), 0) as "Total Hours/W"
FROM
EMPLOYEE e_tbl LEFT JOIN WORKSON w_tbl
ON e_tbl.E# = w_tbl.E#
GROUP BY e_tbl.E#
关于mysql - 带有四个具有主键和外键的不同表的SELECT sql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23309612/