Php mysql统计投票表中的投票数
我有三个表格,分别是Php mysql统计投票表中的投票数,php,mysql,count,left-join,Php,Mysql,Count,Left Join,我有三个表格,分别是选举_cand、候选人和投票: election\u cand表格: ele_can_id | election_id | candidate_id id | canname | canadd | canphone | canmail | candes | canphoto voteid | candidateid | voterid | electionid 候选人表格: ele_can_id | election_id | candidate_id id | ca
选举_cand
、候选人
和投票
:
election\u cand
表格:
ele_can_id | election_id | candidate_id
id | canname | canadd | canphone | canmail | candes | canphoto
voteid | candidateid | voterid | electionid
候选人
表格:
ele_can_id | election_id | candidate_id
id | canname | canadd | canphone | canmail | candes | canphoto
voteid | candidateid | voterid | electionid
投票
表格:
ele_can_id | election_id | candidate_id
id | canname | canadd | canphone | canmail | candes | canphoto
voteid | candidateid | voterid | electionid
我的数据表是:
我希望得到预期的结果
我将mysql查询编写为:
SELECT a.*,b.*,c.*, count(voteid) AS numrows
FROM election_cand a
left join votes b on a.election_id=b.electionid
left join candidate c on a.candidate_id=c.id
where a.election_id='$get_ele_id' group by a.candidate_id
请尝试以下代码:
SELECT
c.*, COUNT(v.candidateid) FROM candidate c
LEFT JOIN votes v ON c.id = v.candidateid
WHERE c.id IN
( SELECT candidate_id FROM election_cand WHERE election_id = 4 )
GROUP BY v.candidateid
如我所见,您只需要此查询:
SELECT
c.*, COUNT(e.ele_can_id) AS numrows
FROM candidate c
Left Join election_cand e on c.id = e.candidate_id
GROUP BY c.id
请描述您的模式,以便我们能为您提供更多帮助。从您的数据库中添加一些数据tables@wajeeh请现在查看它的紧急情况。请把电话号码给我solution@wajeeh你有空吗?请现在查看。是的,我有空,但您的模式非常奇怪,我将尝试一下。我认为我们不应该提倡1992年实际上已被弃用的联接样式。嗨,@草莓,谢谢您的提醒,我已更新了SQL查询。