我有一个内容项目表结构类似于MySQL查询设计 - 计算表决分数多个内容项
| contentid | message | categoryid | userid | dateadded | etc..
15 foo bar 3 4 somedate
16 more foo bar 3 4 somedate
16 foo stuff 3 4 somedate
和票表,其中方向= 1 =向上投票,和= 2是一个向下投票。
| voteid | contentid | userid | direction | dateadded
7 15 4 1 some date
8 15 6 1 some date
9 15 17 2 some date
而且我想选择一组内容项,对用其计算出的得分结束基于投票表中投票的附加列。
以前,我不得不附加到内容表中的“成绩”一栏,每个表决的施法时间,它会更新其分数。这样做,我不必有一个更复杂的查询来计算每个SELECT的分数,但我想现在就改变它。
这票表设计前一段时间,因此,如果所有的票值变化比其他东西1或2(或许-1的downvote)会更容易,我会更新整个表。
该查询将拉取所有内容项目,每个项目都有计算列中的分数?
谢谢乔。如果我在WHERE子句中使用这个新的'Votes'计算列,它会抱怨它不知道'Votes'是什么(例如选择大于-3的内容)。在这里声明之后,我如何参考计算列? – barfoon
@Barfoon:你会用'HAVING'子句测试它。我会更新答案。 –
谢谢。在这种情况下,你必须执行两次“SUM”? – barfoon