我已經在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