-- create table course( -- courseid int(10) not null, -- course_name varchar(10) not null, -- primary key(courseid) -- ); -- -- create table grade ( -- id int(10) not null primary key, #这样也是可以的啊 -- courseid int(10) not null , -- grade float(25) -- )
-- SELECT id , studentname,COUNT(courseid) course_sum,AVG(grade) avg_grade -- from grade ,student -- -- LEFT JOIN student on id = studentid -- WHERE id = studentid -- GROUP BY id; -- HAVING course_sum > 2 and avg_grade > 85
-- SELECT id , studentname,COUNT(courseid) course_sum,AVG(grade) avg_grade -- from grade -- LEFT JOIN student on id = studentid -- GROUP BY id; -- HAVING course_sum > 2 and avg_grade > 85
select * from student s where s.id in (select t.id from (select id,count(*) as choosen_classes,avg(score) as avg_score from scores group by id ) t where t.choosen_classes>=3 and t.avg_score >=85) t2