【发布时间】:2011-08-13 01:46:39
【问题描述】:
我有一个名为“posts”的 sql 表,看起来像这样:
id | user
--------------------------------
0 | tim
1 | tim
2 | bob
还有一个名为“votes”的方法,它存储“posts”表中帖子的赞成票或反对票:
id | postID | type
--------------------------------
0 | 0 | 0
1 | 2 | 1
2 | 0 | 1
3 | 0 | 1
4 | 3 | 0
在此表中,“类型”为 0(表示反对票)或 1(表示赞成票)。
我将如何按帖子的(赞成 - 反对)数量按“蒂姆”排序帖子?
【问题讨论】:
-
基本上,Tim 的第一个帖子 (
id=0) 有 2 个赞成票和 1 个反对票,所以得分为 1。而他的第二个帖子 (id=1) 没有任何票数,所以它有一个零分。所以目标是,当这些被选中时(SELECT * FROM posts WHERE user='tim' ORDER BY <post score> DESC),我们可以以某种方式按分数排序,而无需在帖子表中添加新字段
标签: mysql sql sql-order-by