同一属性多值过滤就是同一个列要符合多个筛选条件。
此篇以筛选符合条件的学生成绩为例,涉及到两个表student(学生表)和stuscore(学生成绩表)。
1、查询数学和英语都是优秀(>85分)的学生信息
用表关联的方式
select a.no ,a.name,b.subject,b.score,c.subject,c.score from student a
join stuscore b on a.no =b.stuno
join stuscore c on b.stuno = c.stuno
and b.subject='数学' and b.score>85 and c.subject ='英语' and c.score>85 ;
用group by的方式,只能展示一个科目的成绩
select a.no ,a.name,b.subject,b.score from student a
join stuscore b on a.no =b.stuno
and b.subject in ('英语','数学') and b.score>=85 group by a.no having count(*)>=2;
b.subject in (‘英语’,‘数学’) and b.score>=85 是分别展示英语优秀的和数学优秀的学生信息
group by a.no having count(*)>=2 是每个学号必须有两条满足条件的记录,即既是英语优秀又是数学优秀的学生
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦