我有一个这样的 MySQL 表:
+----+------------+----------+
| id | instanceID | answerID |
+----+------------+----------+
| 1 | 1 | 10 |
| 2 | 1 | 12 |
| 3 | 1 | 20 |
| 4 | 2 | 12 |
| 5 | 2 | 20 |
| 6 | 2 | 22 |
| 7 | 2 | 25 |
| 8 | 3 | 20 |
| 9 | 3 | 25 |
| 10 | 4 | 12 |
| 11 | 4 | 20 |
+----+------------+----------+
我想在某些条件下检索 instanceID。
这很容易使用“或”:
SELECT instanceID FROM table WHERE (answerID = 10 OR answerID = 12) GROUP BY instanceID;
Returns:
1,2,4
但是,“AND”并不是那么简单,因为条件应用于每个单独的行,而不是每个 instanceID。
例如,我想检索 instanceID where (answerID = 20 AND answerID = 25) 应该返回 2,3
我需要避免像 WHERE x IN(子查询)这样的子查询,因为表是 biIIIIig。
这是一个很难在搜索引擎中搜索到的概念,所以我在这里求助。
谢谢!