给定一个表,使用INNER JOIN和EXCEPT查找最高标记。它会直接找到标记。CCD_ 1。但是如何使用INNER JOIN
和EXCEPT
找到最高值呢?
学生表
sno | name | 标记 |
---|---|---|
1 | ||
2 | B | >td style="text-align:center;">95|
3 | C | >td style="text-align:center;">96|
4 | D | 82 |
5 | E | >td style="text align:central;">87
您不需要编写INNER JOIN
或EXCEPT
(您的问题标记为mysql,不支持EXCEPT
语句(就可以获得最高分数的学生id。写起来简单多了:
select sno from students
where marks = (select max(marks) from students)
结果:
3
如果您使用INNER JOIN,您只会使事情复杂化,并且本质上也会这样做。示例:
select s1.sno, s1.marks from students s1
inner join (select max(marks) as max_mark from students) s2
on s1.marks = s2.max_mark