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 返回一行,并带有一个包含所有值的额外列(按排序顺序,这对于下一步很重要)
  • 外部查询为每组值选择最小 id
于 2012-04-11T13:13:45.437 回答