我有一个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
帮我解决这个问题。
答案 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;