少しSQLに行き詰まっているところです。質問をきちんと表現できるとは思いません。そのため、お見せしましょう。
私は2つのテーブルを持っています。1つは人と呼ばれ、もう1つは予約と呼ばれます。人が持っている予定の数を返すようにしています(ゼロの場合も含む)。予約person_id
にはが含まれ、person_id
予約ごとにあります。したがってCOUNT(person_id)
、賢明なアプローチです。
クエリ:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
person_idが持つ予定の数を正しく返します。ただし、アポイントメントが0の人は返されません(明らかに、そのテーブルにはないため)。
ステートメントを調整してpersonテーブルからperson_idを取得すると、次のような結果になります。
SELECT person.person_id, COUNT(appointment.person_id) AS "number_of_appointments"
FROM appointment
JOIN person ON person.person_id = appointment.person_id
GROUP BY person.person_id;
ただし、これはまだ予定のあるperson_idのみを返し、予定が0の人の戻りである私が欲しいものは返しません!
何か提案がありますか?