我必须在我的数据库中使用表格,第一个(参与者)看起来就像那样:
我还有另一个投票,我可以投票给任何参与者。
所以我的问题是我试图获得每个参与者的所有投票,但是当我执行我的查询时,它只检索按COUNT个投票排序的四行,而剩下的其他没有出现在我的查询中:< / p>
SELECT COUNT(DISTINCT `votes`.`id`) AS count_id, participants.name
AS participant_name FROM `participants` LEFT OUTER JOIN `votes` ON
`votes`.`participant_id` = `participants`.`id` GROUP BY votes.participant_id ORDER BY
votes.participant_id DESC;
检索:
答案 0 :(得分:2)
我认为问题在于您按votes.participant_id
分组,而不是participants.id
,这限制了参与者的投票,outer join
尽管如此。查看http://sqlfiddle.com/#!2/c5d3d/5/0
答案 1 :(得分:0)
正如我从您提供的查询中所理解的那样,您从投票表中选择了唯一的ID,我认为您的列ID不是标识。但如果这是一个身份会更好吗?如果有的话,这是我的答案。用这些替换你的选择。
Select count (votes.participant.id) as count_id ,participants.name as participant_name
from participants join votes
on participants.id = vote.participant_id
group by participants.name
order by count_id
请告诉我它是否有效 欢呼声