我有一个 MySql 数据库,其中包含三个需要在查询中组合的表:计划、注册和候补名单。他们正在实施一个基本的班级注册系统。
时间表包含预定的课程。当用户注册一个班级时,他们的用户帐户 id 和预定班级的 id 存储在注册中。如果某个班级已满员,则将它们存储在候补名单中。所有三个表共享一个 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
这适用于其中一个或另一个,但显然我无法以这种方式获取已注册和候补表的值。任何人都可以建议这样做的好方法吗?