2014-02-18 17 views
0

我有一個mysql查詢返回多個行少數ID與不同的值。在這種情況下,我需要消除ID與某些數據如何消除一個特定的值從一個MySQL查詢時,它有多個值,並保持原樣,當它只有一個值

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

我需要消除A1爲所有那些ID的,其具有一個以上的名稱和其他如果只有一個值A1然後我應該能夠顯示它。

結果應該

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

幫我一個解決方案。

回答

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; 
+0

但最大(名)將有過濾本身的價值並給予我的隨機結果,但我需要檢查,如果該ID有多個值,並且只有它有多個值,那麼我需要檢查它是否是A1,並消除它,並顯示該ID的其餘值之一。 – user3324467

+0

也許您的示例數據集不能正確代表當前的問題! – Strawberry

相關問題