php - 如果不匹配,Mysql Count 返回零

标签 php mysql count

我在一个数组中有一组大约 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/

相关文章:

php - ZendDb中类似mysql_affected_rows()的函数是什么

php - 通过 PHP + HTML 从 MySQL 数据库中选择数据创建表

javascript - 计算字符串javascript中的单词出现次数

使用 Group By 时选择最高/最高计数的 SQL

php - 如何添加执行 PHP 文件的 HTML 按钮

php - WP-电子商务在产品页面上显示类别名称

php - 表单需要将数据发布到 codeigniter 中的 Controller

php - Laravel - 在数据库中的一列中插入动态图像数组 JQuery

javascript - 自动执行查询

mysql - 将 bool 值设置为 mysql 记录指示在所选时间戳范围之前是否存在其他记录