我在数据库中有两个表
表1:候选人
id | name
--------
1 | John
2 | Eva
3 | Siera
表2:票数
| candidateid |
--------
| 1 |
| 1 |
| 1 |
| 1 |
| 2 |
| 2 |
| 3 |
请有人帮我,我的问题是关于如何从投票表中有更多条目的候选人中选择人的名字?
最佳答案
在两个表之间做一个简单的JOIN。
使用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