mysql的分组查询和从查询结果中查询
首先是表格
要求用一条sql语句从该表中查询出每门课都大于80分的人
思路是查出每个人的课程数和满足条件的课程数,然后比较这两个数,查出满足的条件的人
第一步查出每个人的课程数 这个要用到分组查询,分组的条件就是name
语句select name,count(1) from test GROUP BY name
结果
第二步查出每个人满足的条件的数
select name,count(1) from test where fenshu>80 GROUP BY name
然后整合上两步
select name,count(1)as victory,(SELECT count(1) from test s where s.name=t.name) as count from test t where fenshu>80 GROUP BY name
然后从查询结果中寻找满足条件的
select name from(select name,count(1)as victory,(SELECT count(1) from test s where s.name=t.name) as count from test t where fenshu>80 GROUP BY name) temp where temp.victory=temp.count
大功告成