名前の付いた3つのテーブルがあります
- com_event_schedules
- com_予定
- com_event_schedules_com_appointment_c
最初の 2 つのテーブル間に関係があります。
以下はテーブルのフィールドです
- com_event_schedules -- id -- 名前 -- スケジュール日 -- 開始時刻 -- 終了時刻 -- 削除
- com_appointments -- id -- start_time -- end_time -- ステータス
- com_event_schedules_com_appointment_c -- id -- com_event_schedules_com_appointmentcom_event_schedules_ida (スケジュール ID) -- com_event_schedules_com_appointmentcom_appointment_idb (予定 ID)
テーブル com_event_schedule と com_appointments の関係は 1 対多です
結果のschedule_idに必要なもの、およびstatus = 'completed'の予定の合計数
次のクエリを試しました:
SELECT sch.id,COUNT(app.status)
FROM
com_event_schedules sch,
com_appointment app,
com_event_schedules_com_appointment_c rel
WHERE
sch.id=com_event_schedules_com_appointmentcom_event_schedules_ida AND
app.id=rel.com_event_schedules_com_appointmentcom_appointment_idb AND
app.status='completed'
私が結果として期待しているのは、ステータスが「完了」である予定の COUNT を含む各スケジュールの ID であり、一致がない場合は COUNT が「0」である必要があります。
しかし、結果として得られるのは、ステータスが完了し、COUNT 1 の予定を持っているスケジュール ID のみです。
例えば
2 つのスケジュールがあり、それぞれに 3 つの予定があります。そのうち、最初のスケジュールの 1 つの予定が status='completed' になっています
だから私はこのような結果が必要です
sch_id app.status
1 1
2 0