Mysql 一个查询有两个表联接--结果混乱
我试图在查询中执行两个独立的内部表联接,以从两个表返回值Mysql 一个查询有两个表联接--结果混乱,mysql,sql,Mysql,Sql,我试图在查询中执行两个独立的内部表联接,以从两个表返回值 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,平均工资=null。 结果集应包含11行,因为架构中有11个项目 有人能给我指出正确的方向吗 谢谢您错过了
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,平均工资=null。
结果集应包含11行,因为架构中有11个项目
有人能给我指出正确的方向吗
谢谢您错过了分组:
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标准(请参阅)。您缺少分组方式:
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标准(请参见)。使用左外连接而不是内连接
或者你能给我看一下你的数据表吗用左外联接代替内联接
或者你能给我看一下你的数据表吗?你的查询中需要部门表吗
以下查询是否返回您需要汇总的所有数据
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;
查询中是否需要部门
表
以下查询是否返回您需要汇总的所有数据
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;
通过pname添加组;子句似乎返回0行。@Matthew.learn。这将是另一个问题——您的连接条件似乎不正确。您可能需要用示例数据和期望的结果问另一个问题。@onedaywhen。我想你误解了这个评论。这是关于OP最初的查询。我澄清了。通过pname添加组;子句似乎返回0行。@Matthew.learn。这将是另一个问题——您的连接条件似乎不正确。您可能需要用示例数据和期望的结果问另一个问题。@onedaywhen。我想你误解了这个评论。这是关于OP最初的查询。我澄清了。