如何使用in进行子查询将表中不存在的值计数为0

1010

我需要帮助来编写正确的查询。我们有一个调查数据库,其中有一个提供了question_id和answer_id映射的问题的OfferedAnswers表。

提供的答案:

-----------------------
answer_id   | question_id
-----------------------
1           |  1
-----------------------
2           |  1
-----------------------
3           |  1
-----------------------
4           |  1
-----------------------

另一个是FeedbackQuestionAnswer表,该表记录用户投票对question_id和answer_id的响应。

反馈问题答案:

-----------------------
question_id   | answer_id
-----------------------
1             |  1
-----------------------
1             |  2
-----------------------
1             |  1
-----------------------


 select    FeedbackQuestionAnswer.answer_Id, 
           count(FeedbackQuestionAnswer.answer_Id) as count 
           from dEbill.FeedbackQuestionAnswer  
           where FeedbackQuestionAnswer.answer_Id in
           (select answer_Id 
                   from dEbill.OfferedAnswers 
                   where question_Id = 1)
           group by FeedbackQuestionAnswer.answer_Id

在上述情况下,输出为:

    -----------------------
    answer_id   | count
    -----------------------
    1           |  2
    -----------------------
    2           |  1
    -----------------------

而我想要:

    -----------------------
    answer_id   | count
    -----------------------
    1           |  2
    -----------------------
    2           |  1
    -----------------------
    3           |  0
    -----------------------
    4           |  0
    -----------------------

我尝试使用OfferedAnswer.answer_Id而不是FeedbackQuestionAnswer.answer_Id,但遇到范围错误。我也尝试了正确的加入,但没有成功。

蒂姆·比格莱森(Tim Biegeleisen)

只需使用左联接,然后计算第二个表中的非NULL条目:

SELECT
    t1.answer_id,
    COUNT(t2.answer_id) AS count
FROM OfferedAnswers t1
LEFT JOIN FeedbackQuestionAnswer t2
    ON t1.answer_id = t2.answer_id
WHERE
    t1.question_id = 1
GROUP BY
    t1.answer_id
ORDER BY
    t1.answer_id;

查询输出的屏幕截图

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查询以将不存在的行包括为0值

即使表中不存在数据,如何获得计数 0?

使用 Google 表格,如何创建一个查询,如果值不存在,将输出“0”?

当单元格值为 0 或公式中不存在时,如何将单元格留空

即使子查询中不存在,如何使sql返回值?

如果设置为 0 的列中不存在值

如何使用Linq to Entities查询同一张表中的存在和不存在

如何获取表示为空值的行,该行在联接表(oracle)中不存在?

子查询中不存在

当表中不存在数据时,如何不返回值 0,SQLPLUS

如果列在 JSON 中不存在,如何将值插入为 null?

仅当使用MySQL的值不存在时才如何从表中插入值?

如果使用命令行或sql在大查询中不存在,如何创建表

如何将表更新为子查询中的值

R从向量为0生成不存在的值的计数

如何删除Moviestars2019匹配查询不存在数据库表中不存在的值的错误

如果在MySQL中的group by语句中不存在值,如何显示0个计数?

查找表中不存在的值

查找表中不存在的值

表中不存在的输出值

如何为不存在的值创建一行并用0个值填充计数?

如何使用表中不存在的 POPUP LoV 值插入?

如何使用 ruby capybara 验证表的行数中是否不存在值?

mysql显示计数为0不存在的记录

如果新分区不存在,如何修改 CTAS 查询以将查询结果附加到表中?- 雅典娜

TSQL-JOIN:将一个表中不存在的值显示为Join中的零

使用新对象中的值更新原始对象中的值,如果不存在则将值设置为 0

雄辩/查询构建器Laravel:从表A中进行选择,而表B中不存在

如果使用MySQL在数据库中不存在数据,如何获取计数0