我有这个考试表和回复表。我想获取 Exam for exam = 000663 的所有记录
SELECT COUNT(*)
FROM Responses r
JOIN Exams E ON r.category_id_fk = E.id
AND r.exam_id_fk = 000663
实际上总共有 106 行仅包含考试 000663 的响应。但它返回所有考试的所有响应行!它不应该考虑 r.exam_id_fk = 000663 吗?
我没有使用 where 子句,因为我有 3 个其他表加入此查询。
最佳答案
000663 条件属于 WHERE
子句,而不属于 JOIN
关系条件。即使您有其他表加入(作为子查询),您仍然可以使用 WHERE
子句。
select count(*)
from Responses r
join Exams E on r.category_id_fk = E.id
WHERE r.exam_id_fk=000663;
关于MYSQL连接困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768512/