查询一个表并按另一个表的排序顺序排序

时间:2011-02-21 09:02:21

标签: php mysql sorting grouping

我需要从'comments'talbe中选择我的所有评论。问题是,每个评论都会收到多个“赞”,这些“赞”存储在“赞”表中。

我想从“评论”表中选择所有项目,但是当每个“喜欢”在“赞”表中表示为一行时,按照喜欢的次数排序......

有没有人知道这样做的好方法? 非常感谢, Yanipan **编辑** 嗨, 你是对的,对不起。 我使用php作为我的服务器端,MySql作为我的数据库...... 我忘了在这个论坛上问的范围有多广......

1 个答案:

答案 0 :(得分:0)

获取10个最喜欢的评论,包括那些没有任何喜欢的评论(左连接)(假设有两个表的简单结构:评论和喜欢):

select c.*,count(l.id) as likes
  from comments c 
    left join likes l on c.id = l.comment 
  group by l.comment
  order by count(l.id) desc 
  limit 10;

请注意,此查询的性能会非常糟糕。因此,您很可能必须找到另一种策略来按照喜欢的次数对您的评论进行排序。