java - sql查询-使用AND

标签 java sql

下面的查询没有返回任何结果

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/

相关文章:

java - 如何在 Spring 应用程序中运行 JFrame?

java - c++ - 计算一个类的实例化次数

java - hibernate 标准过滤一组枚举值

SQL Server 单查询内存使用情况

java - 在 Android 中设置视频作为背景播放

java - 带有 iText 的 pdfCalligraph 插件支持古吉拉特语

sql - 在 Postgresql 中使用 CHECK 约束验证 json 字符串)

sql - 关系代数 - 除法

mysql - 返回仅包含不带空格的值的列

mysql sum() 分组依据