唯一地获取基于相应值对的ID

时间:2012-04-11 12:51:55

标签: mysql sql database

想想这样的表,

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。请帮我写一下查询来找到这个。

1 个答案:

答案 0 :(得分: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返回一行,其中包含一个包含所有值的额外列(按排序顺序,这对下一步非常重要)
  • 外部查询选择每组值的最小ID