我正在使用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表示喜欢。
现在,我需要找出来自id
的前20个最喜欢的歌曲user_like
,并从user_songs
获取user_songs
的所有数据。
怎么做?
在此先感谢您花费宝贵的时间来解决此问题。
答案 0 :(得分:0)
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条记录。