我已经在stackoverflow上搜索,这个问题没有被问到。如何做MySQL查询加入?
问:
这当中最繁忙的年,“约翰·特拉沃尔塔”,显示年,他每年做任何一年中,他取得了超过2部电影电影的数量。
表:
- 电影(ID,标题,年,评分,投票,导演)
- 演员(ID,姓名)
- 铸造(movieid,actorId来,ORD)
查询:
SELECT y.yr,MAX(y.count)
FROM(
SELECT movie.yr,COUNT(movie.yr) AS count
FROM (movie JOIN casting ON (movie.id=movieid)) JOIN actor ON (actor.id=actorid)
WHERE name='John Travolta'
GROUP BY yr
ORDER BY COUNT(movie.yr) DESC) y
GROUP BY yr
结果显示MAX(y.count)范围从1到3的许多行,但接受的答案只显示1行,最大值为3.我如何纠正上述代码限制为仅一个最繁忙的一年,保持上述代码基本完好?
给出解决方案:
SELECT年,COUNT(标题)FROM
电影JOIN铸就movie.id = movieid
JOIN actor ON actorid=actor.id
其中name = '约翰屈伏塔'
GROUP BY年
HAVING COUNT(标题)=(SELECT MAX(c)由
(SELECT年,COUNT(标题)AS C来自
电影JOIN铸造ON movie.id = movieid
JOIN actor ON actorid=actor.id
其中名称= '约翰屈伏塔'
GROUP BY年)为T )
最后的话:我希望人们ST如果不仔细阅读问题,请标记为重复,请不要像提问者懒惰一样行事。我一直在阅读6 - 7年前的主题,肯定会在答案的文明程度和成熟度方面急剧下降。我不敢相信曾经有很多人慷慨地花时间向他们不认识的新手解释,而不是撕裂别人。
你有没有试过看msql手册? – ThisGuyHasTwoThumbs
请参阅https://meta.stackoverflow。com/questions/333952/why-should-i-provide-an-mcve-for-what-seem-to-be-a-very-simple-sql-query – Strawberry
Simple 3 table join,count,where ,按组排序,并且我看到不需要子查询。 – xQbert