比较基于第二表的列数的两个表结果

时间:2013-01-16 07:38:14

标签: php mysql sql

我正在使用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的所有数据。

怎么做?
在此先感谢您花费宝贵的时间来解决此问题。

1 个答案:

答案 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条记录。