|
恩, 有些笔误, 应该是这样
select distinct a.* from exam_score a, (select id, class, max(exam_date) exam_date from exam_score group by id, class) b
where a.id=b.id and a.class=b.class and a.exam_date=b.exam_date
如果你研究一下执行计划, 就会发现, 二者的执行计划几乎一样
偶第一次见到第一种写法的时候, 完全不能理解它的意思, 它的语法已经超出了SQL92的范围, 很难解释, 因为一个变量无论如何是不能等于一个集合的. 不过约定成俗, 很多数据库都支持这种写法, 当然, 这只是结合语句的另一种形式而已
至于, 你对它的理解, 如果不是等于而是IN的话, 就没有问题了 |
|