选择数据库中的reoccuring字段

时间:2014-08-14 14:43:58

标签: mysql

我首先对mySQL非常陌生,所以我不确定我尝试的是否可行。我在我的网站上有2个问题,其答案作为id(第一个问题:是= 1,否= 2;第二个问题:是= 3,否= 4)注入名为pollOptionId的列中。我可以找出对每个问题都说“是”的人,但是不能弄清楚如何找出对第一个问题回答“是”的人,并且对第二个问题说“是”。

做一个

select * from poll_question
where pollOptionId = 1
or pollOptionId = 3

显示所有已经回答了这两个问题,我想要的是找出那些已经说过1和3的人。我可以手动检查,因为我在表上有一个memberId列,所以例如那些说过两个都有我的人可以判断,因为memberId显示两次!

所以我真正想要的是

select * from poll_question
where pollOptionId = 1
or pollOptionId = 3
WHERE THE MEMBERID OCCURS TWICE 

显然最后一行不是正确的语法,但有助于展示我想要的东西!

真的希望一切都有意义!非常感谢

1 个答案:

答案 0 :(得分:0)

无论用户的数据是什么,你都想要一个having子句..分组..又名用户名user_id无论是什么......然后说当分组后恰好有两个匹配的记录时,他们的pollOptionId为1和3 < / p>
SELECT * 
FROM poll_question
WHERE pollOptionId = 1
   OR pollOptionId = 3
GROUP BY memberid
HAVING COUNT(*) = 2

另一种可能的方法就是这样..

SELECT * 
FROM poll_question
WHERE pollOptionId = 1
  AND memberid IN(SELECT memberid FROM poll_question WHERE pollOptionId = 3)