如何在SQL中获取具有不同值的列的条目

时间:2019-01-19 01:26:28

标签: sql

我有一个用例,其中有一个表,例如:

key  | attribute |
key1 | x | 
key1 | y |
key2 | z |
key2 | z |

有没有一种方法可以在此查询中找到具有多个唯一属性的所有键?对于此示例,我只想返回key1,因为它具有x和y属性,并且x和y不同,其中key 2仅具有一个唯一的属性。

1 个答案:

答案 0 :(得分:4)

是的。只需使用group byhaving

select key
from t
group by key
having min(attribute) <> max(attribute);

如果您想要详细的键/属性对,那么我建议exists

select t.*
from t
where exists (select 1
              from t t2
              where t2.key = t.key and t2.attribute <> t.attribute
             );