クエリで結合する必要がある 3 つのテーブル (スケジュール、登録済み、待機リスト) を持つ MySql データベースがあります。彼らは基本的なクラスの登録システムを実装しています。
スケジュールには、スケジュールされたクラスが含まれます。ユーザーがクラスに登録すると、ユーザー アカウント ID とスケジュールされたクラスの ID が登録済みに格納されます。クラスが定員に達している場合は、代わりにウェイティング リストに格納されます。3 つのテーブルはすべて、各クラスを識別する scheduleId 列を共有します。
スケジュール テーブルにクエリを実行するときは、登録済みで特定の scheduleId を待機しているユーザーの数を表す、登録済みおよび待機リストの列も返す必要があります。
これを達成するために私が思いついた予備的なクエリは次のとおりです。
select s.id, s.classDate, s.instructor, COUNT(e.id) as enrolled
from schedule as s
left outer join enrolled as e
on s.id = e.scheduleId
group by s.id
どちらでも問題なく機能しますが、明らかに、登録済みテーブルと待機リスト テーブルの両方の値をこの方法で取得することはできません。誰かがこれを行う良い方法を提案できますか?