-----------------表student---------------
name object socre
张三 数学 87
张三 语文 73
李四 数学 66
李四 语文 80
王五 数学 88
王五 语文 68
王五 英语 90
怎么查询出所用科目都>80分学生的姓名(SQL)
select * from student where name not in (select name from student where sorce<80 group by name)
思想:先查出存在科目小于80的所有学生,那么全都大于等于80的学生一定不在这些人里面
[code="java"]SELECT *
FROM (
SELECT name, count( name ) num
FROM testbb
WHERE score >= '80'
GROUP BY name
) M
WHERE M.num >= (
SELECT count(DISTINCT(object)
) FROM testbb
) [/code]
思想,选中大于等于80分以上课程数和总课程数相同的学生。