两张表(学生信息表、成绩表),查语文成绩第二高的学生。
一开始错误写法
SELECT s.name FROM student s ,grade g
where s.id = g.id and g.score in
(select score from grade where subject = '语文' order by score desc limit 1,1)
报错:> 1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
解决方法一:limit外层再嵌套一层(一定要最后加上 as ... 以构成表名)
SELECT s.name FROM student s ,grade g
where s.id = g.id and g.score in
(select score from (select score from grade where subject = '语文' order by score desc limit 1,1) as score)
解决方法二:用 inner join...on(一定要加上 as ... 以构成表名)
select s.name from student s
INNER JOIN
(select score,id from grade where subject = '语文' order by score desc limit 1,1) as score
on s.id = score.id;