次のような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 |
+----+------------+----------+
特定の条件下でインスタンス ID を取得したいと考えています。
これは「OR」を使用すると簡単です。
SELECT instanceID FROM table WHERE (answerID = 10 OR answerID = 12) GROUP BY instanceID;
Returns:
1,2,4
ただし、「AND」はそれほど単純ではありません。条件が各インスタンス ID ではなく、個々の行に適用されるからです。
たとえば、2,3 を返す必要がある (answerID = 20 AND answerID = 25) の instanceID を取得したいと思います。
テーブルが biIIIig であるため、WHERE x IN (サブクエリ) のようなサブクエリを避ける必要があります。
これは検索エンジンで検索するのが難しい概念なので、ここで質問することにします。
ありがとう!