mysql - Right Join 无法返回第二个表中的所有行
问题描述
我的代码不会返回在选票表中没有投票的所有候选人。它应该返回所有投票或没有投票的候选人的详细信息。但是,如果我 COUNT(choice) as votes
从查询中删除,它会完美运行。如何添加 COUNT(choice) as votes
并仍然获取没有投票和投票的人的详细信息?
SELECT candidates.name as cname,COUNT(choice) as votes
FROM ballots
RIGHT JOIN candidates
ON candidates.id = ballots.candidate_id
WHERE candidates.position_id ='1'
GROUP BY ballots.candidate_id
ORDER BY votes DESC
候选人表
ID | 姓名 | Position_id |
---|---|---|
1 | 所罗门 | 1 |
2 | 阿代 | 1 |
选票表
voter_id | position_id | 候选人ID | 选择 |
---|---|---|---|
结果
voter_id | 选票 |
---|---|
所罗门 | 0 |
代替:
结果
voter_id | 选票 |
---|---|
所罗门 | 0 |
阿代 | 0 |
解决方案
使用此查询,您将获得预期的结果:
select candidate.name as voter_id, (select count(ballots.choice) from ballots WHERE ballots.candidate_id=candidate.id) as votes FROM candidate left JOIN ballots ON candidate.id = ballots.candidate_id WHERE candidate.position_id=1
推荐阅读
- ios - SwiftUI 文本在 HStack 中超出屏幕
- mysql - MYSQL:根据另一个表的计数过滤掉?
- typescript - TypeScript 将属性添加到特定的联合案例
- opencv - C++/Ubuntu/openCv:gopro 非常低的 fps/分辨率
- python - 如何在 PySimpleGUI 中清空列表框
- sql - 用于 LDAP 的 SPLIT_PART
- java - 计算长方体网格上的点
- bash - ~/.inputrc 中的条目被忽略
- c# - C# 创建 webdriver 后立即收到消息“没有这样的窗口:目标窗口已关闭”
- python - PIL Python 中的 PhotoImage 函数