我正在尝试对SQL进行查询,但是我被卡住了!
我有两个表:
表1:问题
表2:答案
对于每个问题,我可以有一个或多个来自不同用户的答案,但每个用户可以发表评论一次。
用户回答问题时,必须选择一种状态:
1)同意,2)不同意或3)讨论
因此,“问题”表具有以下所有问题:
Id Question
1 q1
2 q2
3 q3
..“ Answer”表包含用户的所有答案,以及“ Question”表中的FK和带有用户选择状态的列。
Id Answer IdQuestion Status
1 a1 1 1
2 a2 1 3
3 a3 2 2
4 a4 2 2
5 a5 3 1
我需要什么:我需要选择所有问题,并且需要计算所有具有不同查询状态的问题。
示例:
问题1有两个答案,两个答案的状态不同。我只需要数数或输入一个数字便可以知道这个问题的答案各不相同。
问题2有两个答案,但是所有答案的状态相同。我不需要数数..或也许用其他数字来区别那些答案各不相同的问题。
而只有一个答案的问题我通常会选择它。
尝试这个:
select q.id,
question,
case when min(status) <> max(status) then
1
else
0
end as hasDifferentStatuses
from questions q
inner join answers a on(q.id = a.IdQuestion)
group by q.id, question
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句