我有这个考试表和答案表。我想取所有考试=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 - MYSQL加入困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7768512/

10-10 23:36