【问题标题】:2 where clauses on same column2 同一列上的 where 子句
【发布时间】:2011-03-31 17:42:49
【问题描述】:

我有一个表格,其中包含用户对其朋友的投票。

设置如下:

+------------+------------+------------+------+
| user_id    | friend_id  | contender  | vote | 
+------------+------------+------------+------+
| 1695929578 | 1695529606 | 1695529577 |    1 | 
| 1695929578 | 1695529577 | 1695529606 |    0 |
| 1695929578 | 1695529721 | 1695529578 |    1 |
| 1695929578 | 1695529578 | 1695529721 |    0 |
| 1695929578 | 1695529580 | 1695529606 |    1 |
| 1695929578 | 1695529606 | 1695529580 |    0 |
| 1695929578 | 1695529606 | 1695529578 |    1 |
| 1695929578 | 1695529578 | 1695529606 |    0 |
| 1695929578 | 1695529577 | 1695529721 |    1 |
| 1695929578 | 1695529721 | 1695529577 |    0 |
+------------+------------+------------+------+

每次用户 (user_id) 进行投票时,都会插入两行。获得选票的人 (vote = 1) 和该人的竞争者占一排,然后输掉的人 (vote = 0) 和他们的竞争者占另一行。

通过一个查询,我希望能够传递用户朋友并返回每个不同朋友的 FOR 和 TOTAL 投票数。它会返回如下内容:

+------------+-------------+
| family_id  | total_votes |
+------------+-------------+
| 1695529439 |           9 |
| 1695529577 |           9 |
| 1695529578 |           6 |
| 1695529580 |           7 |
| 1695529581 |           5 |
| 1695529606 |           7 |
| 1695529721 |           7 |
+------------+-------------+

唯一的区别是我想要一个额外的列来包含该人的 votes_for,这样我就可以比较他们被竞争的次数和他们获胜的次数。

有什么想法吗?

【问题讨论】:

  • +1 充分利用代码块来提出明确的问题......除非我遗漏了什么:-)

标签: mysql sql


【解决方案1】:

Count() 将为您提供总票数。 Sum() 会给你总的赞成票。我有什么遗漏吗?

【讨论】:

  • 哇。我很惊讶我没有想到这一点。有时需要别人对吧?谢谢!
  • 是的。我想有时候左脑会卡住,你需要别人的临时……或者在船上几个小时,如果可以安排的话。 :-)
猜你喜欢
  • 2014-02-16
  • 2011-05-21
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 2014-10-30
  • 1970-01-01
相关资源
最近更新 更多