我的数据库设计就像图片所示:



数据表是为调查所有受访者的答案而设计的。我需要的查询例如

我想知道所有具有条件QID = 2和Answers = 26-35,以及QID = 4和Answers =“ ASHFIELD”的RID(响应者ID)。但是下面的sql查询:

select * from RespondentAnswers
where (QID = 2 and Answers = '26-35') and (QID = 4 and Answers = 'ASHFIELD')


很明显是不正确的。

简而言之,我想知道年龄在26-35岁之间并且居住在“ ASHFIELD”中的受访者。

我的数据库结构如上图所示。请问有人有解决办法吗?谢谢!

最佳答案

可能会被一群人使用

select rid
from RespondentAnswers
where (QID , Answers ) in ( (2, '26-35'),  (4,'ASHFIELD'))
group by rid
having  count(*) =2;

关于mysql - 在SQL数据库中,如何使用具有不同条件值的一列与具有不同条件值的另一列配对?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39810295/

10-13 04:41