1

すでに設定されているデータベースの一部を取得するコマンドを作成しようとしています

teacher_id各教師が1日に受けたレッスンの数をカウントしたリストを作成する必要があります。

使ってます

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」にあります

4

1 に答える 1

1

SELFJOINが使えます

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

これは、teachersテーブルからすべての教師をフェッチし、レッスンテーブルに結合してカウントする変更されたクエリです。また、カウントが利用できない場合は、0が表示されます。

于 2013-03-10T17:32:28.643 に答える