IDと値で降順にソートされたテーブルがあります。特定の順序でキーのグループに一致するすべての ID を返したい。したがって、 (a5, a3) が与えられた場合、 aとbを返したいのですが、 dは返しません。
id value key
a 3 a5
a 2 a3
a 1 a4
b 4 a5
b 2 a3
c 6 a1
c 2 a2
d 4 a3
d 2 a5
期待される出力は
id
a
b
これまでのところ、 (a5, a3) を一致させることができましたが、任意の順序で。ここでは、任意の順序で一致するすべての行とフィールドを返しています。IDだけじゃない。
SELECT tablename.*
FROM tablename, (SELECT * FROM tablename a
WHERE key IN ('a5', 'a3')
GROUP BY id
HAVING COUNT(*) >= 1) AS result
WHERE tablename.id = result.id