选择Distinct 2 Columns

时间:2012-08-27 22:30:26

标签: mysql sql rdbms

我有下表:ID1 , ID2, Name, Sex

表中有ID1重复但ID2,名称和性别不同的记录 - 还有ID2重复且ID1,名称和性别不同的记录。 ID1和ID2都可以具有空值,但不能用于相同的条目。 我需要为id1和id2选择非重复记录,例如

id1   id2      name    sex
10     null    jack     M
10     null    tom      M
null   40      jennie   F
null    32     jenie    F
null    32     emma     M
10     null    stevie   M

需要选择查询才能返回:

id1   id2     name     sex
10     any    any      any (any means it can be either jack,tom,stevie)
null   40     jennie   F
null   32     any      any2 (any2 meaning jeniw or emma)

1 个答案:

答案 0 :(得分:2)

您可以在EXISTS子句中使用WHERE

select t1.id1,
  t1.id2,
  name,
  sex
from yourtable t1
where exists (select *
              from yourtable t2
              where t1.id1 = t2.id1
               or t1.id2 = t2.id2)
group by t1.id1, t1.id2

请参阅SQL Fiddle with Demo