根据第二个表的列数比较两个表的结果


compare two table result on based of count of column of second table

我使用的是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条记录。