有點令人困惑,所以如果我放下示例和預期輸出開始,它會更容易。如何使用MySQL中的最新更新值合併列數據?
我有一個表可能看起來是這樣的:(1單元 - UNIT2列可以跨越多達30列在相同的一般格式)
| ID | Name | Unit1_left | Unit2_left |
| 1 | Tom | 50 | NULL |
| 2 | Tom | NULL | 1 |
| 3 | Tom | 45 | NULL |
| 4 | Dan | NULL | NULL |
我試圖選擇是這樣的一個表:
| Name | Unit1_left | Unit2_left |
| Tom | 45 | 1 |
| Dan | NULL | NULL |
那是什麼做的是按名稱分組,並試圖如果存在的話(如果沒有則返回NULL)找到了2個其他列的最後一個值。
我看了各種其他問題,他們都說使用Max()
但是這不會工作,因爲它選擇最高值(不正確)。我已經看到在MsSQL中有一個Last()
函數,看起來有點像我希望它做的事情,但它沒有在MySQL中實現,並且不是我所需要的。
我想問的是,有沒有人知道選擇這樣的數據的可能方法,或者如果我將不得不使用單獨的編程語言來做到這一點?
你用什麼標準來判斷'其他兩列中的最後一個值'? – 2012-07-16 18:06:39
不完全確定你的意思,但基本上可以說這個表是按ID升序排列的,其中'Name' = Tom。我不能輕易解釋它,但讓我們說當你點擊一個我希望它選擇的數字的時候,你反過來查看「Unit1_Left」欄(45,NULL,50)。 'Unit2_left'也一樣。希望這解釋得比我在第一篇文章中寫得好一點。 – 2012-07-16 18:14:46
換句話說,你爲什麼選擇Tom的'45'值而不是'50'?是否因爲列ID中的值較高? – 2012-07-16 18:19:23