繁体   English   中英

SQL多个内部联接

[英]SQL Multiple inner joins

我正在使用sql查询来执行以下操作:

对于每个项目,请检索项目编号,项目名称以及部门5中从事该项目的员工人数。

到目前为止,我的查询看起来像这样:

SELECT p.PNO
     , p.PNAME
     , COUNT( DISTINCT w.ESSN) '# employees from Dept. 5'
  FROM project p
  JOIN department d
    ON d.DNO = p.DNO 
  JOIN employee e
    ON e.DNO = d.DNO 
  JOIN works_on w
    ON w.ESSN = e.SSN
 WHERE e.DNO LIKE '5' 
   AND p.PNO LIKE 10

在我为10号项目进行测试的地方,该项目应将部门5的雇员人数返回为1,但是它返回NULL。 我认为我需要以某种方式加入项目表和员工表,但是我不确定

附件是我的架构

ER图

您的加入是错误的。

您应该只加入项目,works_on和employee表。

SELECT p.PNO, p.PNAME, COUNT( DISTINCT w.ESSN) '# employees from Dept. 5'
FROM project p
INNER JOIN works_on w 
ON p.pno = w.pno
INNER JOIN employee e 
ON w.essn = e.essn
WHERE e.DNO LIKE '5' AND p.PNO LIKE 10

最后,您缺少该组:

GROUP BY p.PNO, p.PNAME

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM