我不知道该写什么标题。我有一个
SCHOOL
表,带:
id,
name,
type_id
柱。
一
SCHOOL_STUDENT
附表:
school_id,
student_id
柱
和A
SCHOOL_TYPE
表与
id,
name
柱。
学生可以入学
不止一所学校
. 一所学校可以
只有一种类型
. 如果有一个学生,我想检查他/她是否在只有一种类型的学校(高中)注册,而没有其他学校。我想看看这个学生是不是只上了一种类型的学校,而没有其他学校。如果一个学生在两所学校注册,其中一所是高中,其中一所是技术学校,那么我想要一些负面的暗示。如果这两所学校都是高中的话,我希望有积极的迹象。假设school_type有一行id:3,名为“high school”。
样本数据:
学校表
ID:名称:键入ID
1:'abc school':3
2:'xyz school':4
3:'HEH school':3
学校类型表
身份证:姓名
1:'junior school'
2:'tech school'
3:'High school'
学生桌:
学校编号:学生编号
1,123
3,123
2, 56
3, 56
参见studentid:123在两所学校注册,id:1和id:3。这两所学校都是3类,这意味着我想要一个成功的结果。如果同一个学生在不止一所学校注册,并且这些学校也属于其他类型(类型ID:3除外),那么我希望失败。
studentid:123的预期产出是肯定的,studentid:56的预期产出是否定的,因为他就读于两所学校,其中一所不是高中。
我正在尝试,但我知道它缺少什么,但它缺少什么,我似乎没有解决。
select
bc.customer_id, bt.name, count(bt.[name])
from
school_type st
join school s on s.type_id = st.id
join school_student ss on ss.school_id = s.id
where
ss.student_id = 1234
group by
ss.student_id, st.name
有可能有用吗?还是案例?
问题更新: