2
我完全失去了應該怎麼做。MySQL:選擇一行的出現次數,然後將結果與另一個查詢結合起來
我試圖顯示前100名最喜歡的歌曲列表。我有這部分找到最受歡迎的100首歌曲:
SELECT like_song_id, COUNT(like_song_id)
AS occurances
FROM likes
GROUP BY like_song_id
ORDER BY occurances
DESC LIMIT 100;
這很好,我得到了正確順序的頂級歌曲列表。但我還需要其他信息,結果如下:
我需要加入song_id = like_song id上的'歌曲'表。我還需要再次在外部連接(或其他)中添加'likes'表,以查看當前用戶($ user_id(PHP))是否已經喜歡前100個列表中的任何歌曲。
我該怎麼做?
編輯:
這是最後的查詢,爲我工作,謝謝!
SELECT *
FROM (
SELECT like_song_id, COUNT(like_song_id) AS occurrences
FROM likes
GROUP BY like_song_id
ORDER BY occurrences DESC
LIMIT 100
) T1
JOIN songs ON songs.song_id = T1.like_song_id
LEFT OUTER JOIN likes ON likes.like_song_id = T1.like_song_id AND like_user_id = 1
ORDER BY occurrences DESC LIMIT 100
一個小問題。第100位的關係會產生任意結果 – 2010-08-12 19:09:42