我正在构建一个投票系统,我现在有一个查询,它应该选择所有的民意调查并计算每个民意调查的所有选票(位于单独的表中)。所以我的表看起来像:
Polls:
ID
Title
Body
Votes:
ID
PollID
Vote (This value is either 0 or 1)
总票数看起来正常,问题是它目前只显示一条记录。
目前我的查询是这样的:
SELECT POLLS.ID,
POLLS.TITLE,
POLLS.BODY,
Sum(CASE
WHEN VOTES.VOTE = 1
AND VOTES.POLLID = POLLS.ID THEN 1
ELSE 0
END) AS yay,
Sum(CASE
WHEN VOTES.VOTE = 0
AND VOTES.POLLID = POLLS.ID THEN 1
ELSE 0
END) AS nay,
FROM polls,
VOTES
ORDER BY POLLS.ID
我还使用 PHP 和 Codeigniter。
最佳答案
SELECT polls.ID,polls.title,polls.body,
SUM(case when votes.vote = 1 then 1 else 0 end) AS yay,
SUM(case when votes.vote = 0 then 1 else 0 end) AS nay,
FROM polls
JOIN votes ON polls.ID = votes.pollID
GROUP BY poll.ID, polls.title, polls.body
ORDER BY polls.ID
关于php - 两个表一起查询,只显示一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918183/