0

IDと値で降順にソートされたテーブルがあります。特定の順序でキーのグループに一致するすべての ID を返したい。したがって、 (a5, a3) が与えられた場合、 abを返したいのですが、 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
4

2 に答える 2

1

このために、次のクエリを使用できます-

select distinct t_1.ID from tablname t_1, tablename t_2 
where t_1.id = t_2.id
  and t_1.key = 'a5' and t_2.key = 'a3' 
  and t_1.value > t_2.value
于 2013-05-20T17:24:47.027 に答える