下面的查询没有返回任何结果
SELECT user_id FROM test WHERE poll_id = 2 AND (question_id = 2 AND answer_id = 5) AND (question_id = 3 AND answer_id = 8);
这是不是正确的语法?
表格数据为
|poll_id | question_id | answer_id | user_id |
|--------|-------------|-----------|---------|
| 2 | 2 | 5 | 2 |
| 2 | 3 | 8 | 2 |
结果应该是2
最佳答案
不是因为你where子句中的AND条件不匹配
你应该把它改成:
SELECT user_id FROM test WHERE poll_id = 2
AND
((question_id = 2 AND answer_id = 5)
OR (question_id = 3 AND answer_id = 8));
更新
SELECT t.user_id FROM test t WHERE poll_id = 2
AND exists ( select 1 from test where
(question_id = 2 AND answer_id = 5 and user_id=t.user_id ))
AND question_id = 3 AND answer_id = 8
关于java - sql查询-使用AND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8168402/