对于车库数据库,尝试在部分测试期间查找制造商组件的平均分数。以下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)
答案 0 :(得分:1)
如果您想要返回所有manufacturer_id
值,那么您需要使用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_id
中使用JOIN
,但是您正在加入section
,是否需要在[{1}}中添加联接或在您的status
中输入错误原帖?
答案 1 :(得分:0)
您在部分和组件之间有一个内部联接。如果特定制造商的两个表中都没有匹配的记录,那么将完全过滤掉它们。