我使用的是mysql数据库
我有两个表,一个是user_songs
,第二个是user_like
user_song
:字段
id(auto incement)
song_id
user_id
song_name
song_file
user_like
:字段
id(auto incement)
song_id
uder_id
like
在user_like
中,我将数据保存在任何用户喜欢歌曲的地方,因此每行都包含以下数据:
1 1 1 1
请注意,点赞保存0或1.0表示不喜欢,保存1表示喜欢。
现在我需要从user_like
中找出前20首最喜欢的歌曲id
,并从user_songs
中获得user_songs
的所有数据。
如何做到这一点
提前感谢您花费宝贵时间来解决此问题。
SELECT a.*, b.totalLike
FROM user_song a
INNER JOIN
(
SELECT song_id, COUNT(*) totalLike
FROM user_like
GROUP song_id
) b ON a.song_id = b.song_ID
ORDER BY totalLike DESC
LIMIT 20
注意:上面的查询不处理totaluserLike
结果上的绑定值。结果列表中只显示20条记录。