1

我正在尝试编写命令来检索已设置的数据库部分

我需要制作一个teacher_id's 列表,其中计算每个老师一天的课程数量。

我在用

SELECT teacher_id, COUNT(lesson_time)
FROM lessons
WHERE lesson_time > 0
GROUP BY teacher_id;

此语句检索所有教师 ID 并显示他们每个人有多少课,但是,我希望该语句也包括有 0 课的教师。

lesson_time设置为NOT NULL,所以我假设 0 必须写在老师有 0 节课的单元格中。

教师 ID 在“教师”表中

4

1 回答 1

1

您可以使用 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

这是修改后的查询,将从教师表中获取所有教师,然后加入课程表进行计数。如果任何计数不可用,它将显示 0。

于 2013-03-10T17:32:28.643 回答