如果候选人在投票表中有最高的条目,则从候选人表中选择名称

2ledvvac  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(196)

我在数据库table1中有两个表:candidates

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

表2:投票

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

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

jdgnovmf

jdgnovmf1#

在两个表之间做一个简单的连接。
获得每个候选人的总票数 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
mpgws1up

mpgws1up2#

根本没有 voteId 在你的样本数据中。你似乎想要:

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

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

相关问题