为每个对象和最高投票对象选择计数投票

时间:2010-12-03 02:37:13

标签: mysql count foreign-key-relationship

我有两张桌子:

使用字段pk:id, fk:uid, date投票,使用字段pk:id, ...投票。

表在uid< -id字段上有1to1关系。我现在如何查询:

  • 对象列表及其得分
  • 按分数排序的10个评分最高的对象列表?

1 个答案:

答案 0 :(得分:1)

    SELECT s.*,
           COUNT(*) AS cnt
      FROM SUBMISSION s
INNER JOIN VOTE v ON s.id = v.uid
  GROUP BY s.id
  ORDER BY cnt DESC
     LIMIT 10

如果没有ORDER BYGROUP BY条款,您只需检索所有提交的投票数。

但我强烈建议您votes_count表格中创建SUBMISSION字段并使用触发器/代码维护它以存储预先计算的投票数。