mysql 两表 count 没有数据则返回0?

问题列表:
clipboard.png

用户回答问题情况列表:
clipboard.png

现在的 问题是,我在select的时候 想直接显示:

username---------回答正确个数
st1------------------------- 0
st387944558-------------1

怎么才能达到以上效果呢?试了好多次都不行

阅读 4.1k
4 个回答

q表:
clipboard.png

l表:
clipboard.png

结果:
clipboard.png

解法:

SELECT
    l.username,
    IFNULL(c.count, 0) count
FROM
    l
LEFT JOIN (
    SELECT
        username,
        count(*) count
    FROM
        l,
        q
    WHERE
        l.question = q.id
    AND l.answer = q.answer
) c ON l.username = c.username
GROUP BY
    l.username

你可以把你的SQL语句贴出来,看下有哪些错误

select username,count(*) 回答正确个数 from 回答问题情况列表 a,问题列表 b where a.question=b.id and a.answer=b.answer group by a.username;

SELECT
    username,
    count(t.answer)
FROM
    user_answer a
LEFT JOIN question t ON (
    a.question = t.question
    AND a.answer = t.answer
)
GROUP BY
    a.username
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题