通过一个查询中的不同表的结果对结果进行排序

时间:2012-08-16 20:37:18

标签: php mysql

是否可以在一个查询中包含这样的内容,

计算某个ID在image_likes中有多少匹配,然后根据images的结果来排序结果。

3 个答案:

答案 0 :(得分:0)

SELECT
    *
FROM
    `images`
ORDER BY
    (SELECT COUNT(`id`) FROM `image_likes` WHERE `image_id`=images.`id`) ASC

(我当然会编写字段名称,但这种格式应该有用)

如果可能,您可能希望更改系统的工作方式,以便您只需从字段名称中读取总喜欢,而不是进行子选择。

答案 1 :(得分:0)

未测试

select imageid, count(imageid) from image_likes 
Group by imageid
Order by Count(imageid) desc

答案 2 :(得分:0)

select * from (SELECT *,(SELECT COUNT(*) as count from image_likes il WHERE ID = i.ID)         
FROM images) tbl ORDER BY COUNT

未测试