2013-06-13 71 views
0

我有三列一個MySQL表:刪除重複的行合併單元格值的MySQL

Name   | Email    | BDate 
--------------------------------------------------------- 
John Doe  | [email protected] | June 1, 1980 
Kelly Smith |      | June 2, 1983 
Richmond White | [email protected] | 
John Doe  |      | 
Kelly Smith | [email protected] | 
Richmond White |      | June 3, 1984 

我想要做的就是刪除重複的名稱,合併單元格的值。我想我的表看起來像這樣:

Name   | Email    | BDate 
--------------------------------------------------------- 
John Doe  | [email protected] | June 1, 1980 
Kelly Smith | [email protected] | June 2, 1983 
Richmond White | [email protected] | June 3, 1984 

我的查詢將如何返回我的慾望表?

在此先感謝!

回答

2

查詢:

SQLFIDDLEExample

SELECT t1.Name, 
     MAX(t1.Email) Email, 
     MAX(t1.BDate) BDate 
FROM Table1 t1 
GROUP BY t1.Name 

結果:

|   NAME |    EMAIL |  BDATE | 
------------------------------------------------------ 
|  John Doe | [email protected] | June 1, 1980 | 
| Kelly Smith | [email protected] | June 2, 1983 | 
| Richmond White | [email protected] | June 3, 1984 | 
+0

謝謝,這就是我需要的。非常感謝。 – jules

0

一種選擇是使用下面的查詢,以創建一個新表,然後刪除舊錶:

SELECT Name, GROUP_CONCAT(Email) AS Email, GROUP_CONCAT(BDate) AS DBate 
FROM YourTable 
GROUP BY Name 
+0

謝謝,感謝您的回覆。 :) – jules