0

对于车库数据库,尝试在部分测试期间找到制造商组件的平均分数。以下 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

但只会给出一行结果(即只有一个manufacturer_id)

4

2 回答 2

1

如果要返回所有manufacturer_id值,则需要使用 a LEFT JOIN

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;

您当前的查询使用的INNER JOIN将只返回两个表之间匹配的行。

您也正在使用status.mod_idJOIN但您正在加入section,您是否需要添加加入status或在您的原始帖子中输入错误的内容?

于 2013-03-19T20:22:20.423 回答
0

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

于 2013-03-19T20:21:24.767 回答