我在一个数组中有一组大约 9000 个导师 ID,我将它们放在一个字符串中,如下所示:
(1,2, 3, 4,5,6,7,....9000,9001,9002)
以便我可以在以下查询中使用它们:
select count(student_assignment.assignment_id) as total_assignment from
student_assignment, assigned_tutor_fk where assignment_status = 'closed'
and assigned_tutor_fk in (1,2, 3, 4,5,6,7,..100,101,103...9000,9001,9002)
group by assigned tutor_fk.
我想计算与每个导师(assigned_tutor_fk)相关联的总行数,以及那些没有分配的导师,即那些没有分配的导师 在表中记录我想将他们的分配计数显示为 0,我只希望我的查询返回计数和 assigned_tutor_fk 我的表结构是:
assignment_id | assigned_tutor_fk | assignment_date | student_id |
| 1 | 2 | 22-01-2011 | 4 |
| 2 | 3 | 14-03-2011 | 5 |
我试图让我的输出像这样:
|total_assignment | assigned_tutor_fk |
| 5 | 4 |
| 2 | 7 |
| 0 | 8 |
更新:我认为我无法正确表达自己,我已经有一个根据另一个标准过滤的导师列表,将这两个查询结合起来非常复杂,所以现在我有一组导师 ID 和我如果导师没有分配记录,希望总和显示为零。请帮我解决这个问题,因为我现在不知道该怎么做
最佳答案
SELECT t.id, COUNT(sa.assignment_id)
FROM tutor t
LEFT JOIN
student_assignement sa
ON sa.assignment_tutor_fk = t.id
WHERE t.id IN (1, 2, ..., 9002)
GROUP BY
t.id
关于php - 如果不匹配,Mysql Count 返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14337514/