SQL语句查询指定的数据,查询只选择了指定4门课程的学生

来源:互联网 发布:名字分析软件 编辑:程序博客网 时间:2024/04/29 18:20

【记录问题,还未一定验证正确性】

例如有如下数据:

学生表stu[stu_id, stu_name]
1, xiaoming;
2, xiaofang;
3, xiaozhi;


课程表course[course_id, course_name]
a, '语文';
b, '数学';
c, '英语';
d, '物理';
e, '化学';
f, '生物';
学生选课表t_stu_course[stu_id, course_id]
1, a;
1, b;
1, c;
1, d;
2, a;
2, b;
2, c;
3, b;
3, d;
3, e;
3, f;
查询出只选择了[语文、数学、英语、物理]这四门课程的学生, 所以只有[1, xiaoming]选择[a,b,c,d]这四门课程
--begin--找出course_id只能是这个4个的数据的stu_idselect stu_id, count(stu_id) ks  from t_stu_course--在A集合里面找出course_id只能在这4个值中间的 where course_id in ('语文',                     '数学',                     '英语',                     '物理')--再次根据stu_id分组,已计算课数列ks group by stu_idhaving stu_id in--找出只有4个数据的所有stu_id [我们称下面SQL语句查出来的数据叫做A集合] (select stu_id    from t_stu_course   group by stu_id  having count(stu_id) = 4)--课数列必须等于4and count(stu_id) = 4--end


0 0
原创粉丝点击