使用INNER JOIN和EXCEPT查找得分最高的学生id



给定一个表,使用INNER JOIN和EXCEPT查找最高标记。它会直接找到标记。CCD_ 1。但是如何使用INNER JOINEXCEPT找到最高值呢?

学生表

>td style="text-align:center;">95>td style="text-align:center;">96>td style="text align:central;">87
sno name 标记
1
2 B
3 C
4 D 82
5 E

您不需要编写INNER JOINEXCEPT(您的问题标记为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

最新更新