php - 两个表一起查询,只显示一条记录

标签 php mysql sql

我正在构建一个投票系统,我现在有一个查询,它应该选择所有的民意调查并计算每个民意调查的所有选票(位于单独的表中)。所以我的表看起来像:

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/

相关文章:

php - 尝试在数据库中使用 ckeip 和 codeigniter 更新数据

mysql - SQL:返回具有匹配百分比计算列的用户表?

mysql - 仅显示本月没有更新的记录

mysql - MySQL中如何组织相互依赖的变量ID

php - Mysql多列总和的平均值

php - 我正在尝试根据发布时间戳将注册日期添加到 mysql 中

当我添加用户名功能时,php 登录表单无法正常工作

javascript - 如何使用js获取session的值

MySQL:使用表中的parent_id获取所有层次结构

mysql - UNION 和 LIMIT 1 说明