我尝试在查询中执行两个单独的内部表连接,以返回两个表中的值。
SELECT pname, avg(salary)
FROM project p INNER JOIN department d on p.dnum = d.dnumber
INNER JOIN employee e ON e.dno = d.dnumber;
我在结果集中得到一行... pname = null,avg(salary)= null。 结果集应包含11行,因为架构中有11个项目。
有人能指出我正确的方向吗?
谢谢
答案 0 :(得分:2)
您错过了onConfigurationChanged
:
group by
在大多数数据库中,您的版本会因语法错误而失败。如果您使用SELECT pname, avg(salary)
FROM project p INNER JOIN
department d
on p.dnum = d.dnumber INNER JOIN
employee e
ON e.dno = d.dnumber
GROUP BY pname;
模式,MySQL仅强制执行ANSI标准(请参阅here)。
答案 1 :(得分:0)
使用左外连接而不是内连接 或者你能告诉我你的数据表
答案 2 :(得分:0)
您的查询中是否需要department
表?
以下查询是否会返回您需要汇总的所有数据?
SELECT pname, salary
FROM ( SELECT salary, dno AS dnum FROM employee ) e
NATURAL JOIN project;
如果是,那么这可能是您需要的摘要:
SELECT pname, AVG( salary ) AS average_salary
FROM ( SELECT salary, dno AS dnum FROM employee ) e
NATURAL JOIN project
GROUP
BY pname;