我正在尝试编写命令来检索我的数据库中已经设置好的部分
我需要生成一个 teacher_id
的列表,其中包含每位教师一天的课时数。
我正在使用
SELECT teacher_id, COUNT(lesson_time)
FROM lessons
WHERE lesson_time > 0
GROUP BY teacher_id;
此语句检索所有教师 ID 并显示他们每个人有多少节课,但是,我希望该语句也包括有 0 节课的老师。
lesson_time
设置为 NOT NULL
,因此我推测必须在教师有 0 节课的单元格中写入 0。
teacher_id 在“Teachers”表中
最佳答案
你可以使用 SELF JOIN
SELECT
p.people_id,
p.first_name,
IFNULL(COUNT(l.lesson_time),0) AS LessonCount
FROM people AS p
LEFT JOIN lessons AS l
ON t.people_id = l.teacher_id
GROUP by p.people_id
这是修改后的查询,它将从教师表中获取所有教师,然后加入类(class)表以进行计数。如果任何计数不可用,它将显示 0。
关于MySQL - 修改查询(NOT NULL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15325209/