与子查询的自连接问题;想知道下面两个查询的区别

Issue with self join with a sub query;wanted to know the difference of 2 queries below

这个工作:

SELECT a.year, a.name, a.runs
from players a  JOIN
     (SELECT year, max(runs) runs FROM players GROUP BY year
     ) b  
     ON (a.year = b.year AND a.runs = b.runs);

这不起作用:

select a.name,b.year,b.run
from players a join 
     (select year, max(runs) as run, name from players group by year
     ) b
     on a.year = b.year AND a.runs = b.run;

有人能帮我理解一下吗?

第二个 Join 查询没有正确分组

     (select year, max(runs) as run, name from players group by year
 ) b

因为你 select 也命名你应该按

分组
        (select year, max(runs) as run, name from players group by year, name
 ) b

但这会给你不同的结果