2011-08-29 89 views
1

我想在mysql表中選擇對ticket_id的重複條目的最新條目,我的當前是這樣的。Mysql選擇重複行之一

SELECT * , 
     COUNT(*) AS cnt , 
     ticket_id 
FROM temp_tickets 
GROUP BY ticket_id 
ORDER BY id DESC 

它給出的次一排被複制的號碼,但我能夠選擇那些mulptiple行

讓說我有最新一個3 TICKET_ID的這得到了重複5次,現在我想從所有這3個ID中選擇最新的事件。

讓我知道我是否必須更具體。

感謝

+0

而你仍然需要'COUNT'以及在同一個查詢?或者你只是想爲每組重複中的最新條目設置一個結果集? –

+0

@馬丁最新的所有dulpicate集 – Shanon

回答

5

這裏的(假設「最新」的意思是「最偉大的ID」)

SELECT temp_tickets.* 
FROM temp_tickets 
     JOIN (SELECT MAX(id) AS id 
       FROM  temp_tickets 
       GROUP BY ticket_id 
       HAVING COUNT(*) > 1 
      ) latest ON latest.id = temp_tickets.id  

我懷疑有可能拿出更有效的解決方案involving user variables但我會離開的一種方式那對別人...

0
SELECT distinct * 
FROM temp_tickets 
GROUP BY ticket_id 
ORDER BY id DESC 
+2

請描述爲什麼你的答案可以解決這個問題? – Ibrahim

+0

當您指定SELECT DISTINCT時,它將爲您提供所有行,從而消除結果集中的重複項。 「重複」是指所有字段具有相同值的行。 – gowtham