0

このようなテーブルを考えてみてください。

ID     Value    
100    1    
100    2    
101    1    
101    2   
102    1     
103    2   
104    1

ここで、対応する値の組み合わせに基づいて ID を一意に取得したいと考えています。(つまり) 100 は、値として 1 と 2 の両方を持っています。101 にも 1 と 2 があります。今は 100 と 101 の両方は必要ありません。どちらか一方 (100 または 101) だけが必要です。同様に、102 と 104 はどちらも値が 1 であるため、両方は必要ありません。通常、私の結果は次のようになります

ID
100
102
103

一意に対応する値のペアを持つ ID が必要です。私はMYSQLを使用しています。これを見つけるためのクエリを書くのを手伝ってください。

4

1 に答える 1

2

次のようなことを試すことができます:

select
  min(id)
from (
  select 
    id, 
    group_concat(value order by value) as values
  from <table>
  group by id
) r
group by values

仕組み:

  • サブクエリは、ID ごとに 1 つの行を返し、すべての値を含む追加の列を (次のステップで重要なソート順で) 返します。
  • 外側のクエリは、値の各セットの最小 ID を選択します
于 2012-04-11T13:13:45.437 に答える