Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择仅显示一个结果的平均值_Mysql_Sql_Select_Relational Database - Fatal编程技术网

Mysql 选择仅显示一个结果的平均值

Mysql 选择仅显示一个结果的平均值,mysql,sql,select,relational-database,Mysql,Sql,Select,Relational Database,对于车库数据库,尝试在截面测试期间查找制造商部件的平均分数。以下SQL似乎工作得很好: SELECT component.manufacturer_id, AVG(section.grades) AS Grade_Average FROM section INNER JOIN component ON section.mod_id=component.cid GROUP BY component.manufacturer_id 但是只会给出一行结果(即,只针对一个制造商id)在节和组件之

对于车库数据库,尝试在截面测试期间查找制造商部件的平均分数。以下SQL似乎工作得很好:

SELECT component.manufacturer_id, AVG(section.grades) AS Grade_Average 
FROM section
INNER JOIN component
  ON section.mod_id=component.cid
GROUP BY component.manufacturer_id

但是只会给出一行结果(即,只针对一个制造商id)

在节和组件之间有一个内部连接。如果两个表中都没有特定制造商的匹配记录,则会将它们完全过滤掉。

如果要返回所有
制造商id
值,则需要使用
左联接

SELECT component.manufacturer_id, 
  AVG(section.grades) AS Grade_Average 
FROM component
LEFT JOIN section
  ON status.mod_id=component.cid  
GROUP BY component.manufacturer_id;
当前查询使用的是
内部联接
,该联接只返回两个表之间匹配的行


您也在使用
状态。mod_id
加入
中,但是您正在加入
部分
,您是否需要向
状态
添加一个加入,或者您的原始帖子中键入了什么错误?

表中是否还有
制造商id
“将只给出一行结果”或“只给出一行结果”。因为GROUP BY将为其在联接中找到的每个唯一制造商ID返回一个平均值。如果只得到一个结果,则表示只有一个制造商ID。