班级
- 类 ID (PK)
- 班级名称
- 班级容量
批
- 批次编号 (PK)
- 批次名称
- 尺寸
- 状态 {未开始、已注册、已完成}
批处理类
- BatchClassId (PK)
- 批次 ID (FK)
- 类 ID (FK)
- 没有学生
关系
- 一个类具有最大容量,因此一个批次可以有多个类,但在给定时间,一个类只能分配给一个批次,状态为 = 已注册(这要从应用程序端验证)
我想获取当前未分配给状态不等于已注册批次的所有类
这是我试过的,
SELECT C.*
FROM Class C
LEFT JOIN (
Batch B
INNER JOIN BatchClass BC
ON B.BatchId = BC.BatchId
) ON C.ClassId = BC.ClassId
WHERE B.Status <> "Enrolled";
即使当我尝试 WHERE B.Status = "Enrolled" 时,它也会提供所有已注册批次的课程。我想要的是从上面的 SQL 对我不起作用的对立。
我不确定我的设计或 SQL 语句是否有问题。请帮忙。先感谢您。