如果他在投票表中的条目最高,请从候选人表中选择姓名

时间:2018-09-22 14:39:22

标签: mysql sql

我在数据库中有两个表 表1:候选人

id | name
--------
1  | John
2  | Eva
3  | Siera

表2:票数

| candidateid |
--------
|   1   |
|   1   |
|   1   |
|   1   |
|   2   |
|   2   |
|   3   |

请有人帮我,我的问题是如何从投票表中有更多条目的候选人中选择人的名字??

2 个答案:

答案 0 :(得分:1)

  • 在两个表之间进行简单的联接。
  • 使用COUNT函数在一组候选人ID上获得每个候选人的总票数。
  • 以总投票的降序对结果进行排序,并使用LIMIT 1获取具有最高投票权的人的详细信息。

请尝试以下操作:

SELECT c.id, 
       c.name, 
       COUNT(*) AS total_votes 
FROM candidates AS c 
JOIN votes AS v ON v.candidateid = c.id 
GROUP BY c.id 
ORDER BY total_votes DESC LIMIT 1

答案 1 :(得分:0)

示例数据中没有voteId。您似乎想要:

SELECT CandidateId, count(*)
FROM votes
GROUP by CandidateId;

您可以使用JOIN从另一个表中引入名称。