我已经阅读了大量有关 SO 的答案,但仍然无法正常工作。我很确定我需要一个子查询,但不知道应该从哪里开始...
这是我想做的可读/伪造的:
SELECT DISTINCT cat_sub.*, COUNT(job.job_id) AS num_properties_which_meet_criteria
FROM cat_sub
LEFT JOIN job_cat USING (sc_id)
LEFT JOIN job USING (job_id)
WHERE job.village_id=2 AND num_properties_which_meet_criteria > 0
GROUP BY sc_id
我正在尝试让我的WHERE
引用job
表中有效结果的数量,在本例中是匹配job.village_id 的那些=2
。
所以为了清楚起见,我不希望连接匹配的总行数。我想要通过联接匹配并满足 WHERE
条件的总行数。
非常感谢任何帮助!
最佳答案
您使用 HAVING 子句测试聚合函数的值。
SELECT DISTINCT cat_sub.*, COUNT(job.job_id) AS num_properties_which_meet_criteria
FROM cat_sub
LEFT JOIN job_cat USING (sc_id)
LEFT JOIN job USING (job_id)
WHERE job.village_id=2
GROUP BY sc_id
HAVING COUNT(job.job_id) > 0
关于Mysql:依赖于列的 COUNT() 的 WHERE 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7431420/