0

Doctor と呼ばれるテーブルと Appointment と呼ばれるテーブルが 2 つあります。それらは両方とも共通の関係で doctor_id を持っています。医師 ID のリストと、0 回以上の予約がある各医師の予約数を作成できるようにする必要があります。(表の内容については画像を参照してください)

ここに画像の説明を入力

以下のコードを使用すると、医師のリストと予約番号を取得できますが、医師リストにあるため、予約がゼロの医師は表示されません。どのような修正を行う必要がありますか?

SELECT doctor_id, COUNT(DISTINCT appt_time) AS No_APP FROM appointment GROUP BY doctor_id;

これは私がそこから得るものです

ここに画像の説明を入力

4

4 に答える 4

5

試す:

SELECT doctor.doctor_id, COUNT(appointment.appt_time) AS No_APP 
FROM doctor
LEFT JOIN appointment 
ON appointment.doctor_id = doctor.doctor_id
GROUP BY doctor.doctor_id;
于 2013-03-14T15:26:03.680 に答える
1

左結合を使用します。

SELECT doctor.doctor_id, COUNT(appt_time) AS No_APP FROM doctor LEFT JOIN appointment ON doctor.doctor_id = appointment.doctor_id GROUP BY doctor.doctor_id;

それはトリックをする必要があります

于 2013-03-14T15:28:08.860 に答える
0

左結合を使用します。

SELECT doctor.doctor_id, COUNT(DISTINCT appt_date, appt_time) AS No_APP 
FROM doctor 
LEFT JOIN appointment
ON doctor.doctor_id = appointment.doctor_id
GROUP BY doctor_id;
于 2013-03-14T15:27:28.520 に答える
0

これはうまくいくはずです:

select 
  d.doctor_id
  ,count(distinct a.appt_time) as No_APP 
from doctor d 
left join appointment a on d.doctor_id=a.doctor_id
group by d.doctor_id
于 2013-03-14T15:26:34.117 に答える