如何在具有多个值的情况下从mysql查询中消除特定值,并在它只有一个值时保持原样

时间:2014-02-18 17:23:54

标签: mysql

我有一个mysql查询,它为少数具有不同值的ID返回多行。在这种情况下,我需要用某些数据消除ID

实施例

ID   Name  Value
1     A1     AA    
1     B1     AB
2     C1     CC
3     A1     AA
4     A1     AA
4     E1     AD
4     B1     AB

我需要为具有多个名称的所有ID消除A1,否则如果它只有一个值A1,那么我应该能够显示它。

结果应该是

ID    Name    Value
1      B1      AB
2      C1      CC
3      A1      AA
4      E1      Ad ---- Any random value from the two

帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解该规范 - 但这确实为该特定数据集提供了正确的结果集......

SELECT x.* 
  FROM my_table x    
  JOIN 
     ( SELECT id,MAX(name) max_name FROM my_table GROUP BY id ) y 
    ON y.id = x.id 
   AND y.max_name = x.name;