MySQL-联接和子查询

我正在寻找一个问题,询问“每年列出该年发行的最差电影的名称。电影是根据得分进行评分的:得分越低,电影越差。如果发生平局,应列出所有平局的电影。结果应该按时间顺序显示。'

这些表是:

movies(id,title,yr,score,votes,director)
castings(movieid,actorid)
actors(id,name)

到目前为止,我已经了解了

SELECT m.title
FROM movies AS m
WHERE m.score = (SELECT MIN(score) FROM movies)
ORDER BY m.yr DESC
S329817566 回答:MySQL-联接和子查询

您快到了。实际上,您的查询为您提供了多年来总分最低的电影。您需要关联子查询和外部查询:

select yr,title
from movies m
where score = (select min(score) from movies m1 where m1.year = m.year)
order by yr desc

通过将表与聚合子查询联接在一起,您可以获得与之相同的结果:

select m.yr,m.title
from movies m
inner join (select yr,min(score) score from movies group by yr) x
    on x.yr = m.yr and x.score = m.score
本文链接:https://www.f2er.com/2960114.html

大家都在问