2015-02-23 58 views
0

這讓我非常興奮。我有以下基本表結構:MySQL:結合列b&c GROUP BY列中的DISTINCT值a

+-----+-----+-----+ 
| YEAR| ID1 | ID2 | 
+-----+-----+-----+ 
| 2012| 103 | 105 | 
| 2012| 110 | 114 | 
| 2013| 103 | 110 | 
| 2013| 114 | 120 | 
| 2014| 122 | 103 | 
+-----+-----+-----+ 

我需要的是從列ID1和ID2經柱全年業績分組不同值的列表。爲了加強它,最低年份必須以不同的價值顯示。結果表應如下所示:

+-----+-----+ 
| Year| ID | 
+-----+-----+ 
| 2012| 103 | 
| 2012| 105 | 
| 2012| 110 | 
| 2012| 114 | 
| 2013| 120 | 
| 2014| 122 | 
+-----+-----+ 

任何幫助將不勝感激!

+0

我們不是做你的工作適合你,請出示你已經嘗試了什麼。然後我們會幫助你實現它。提示:在子查詢中使用'UNION'可將ID1和ID2組合到一個列中。 – Barmar 2015-02-23 22:01:40

+0

@Strawberry因爲2014年是不同價值122的最低年份。它不是應該分鐘的ID,而是今年。 – jpw 2015-02-23 22:17:42

+0

@Barman我不認爲我的任何嘗試都會以任何方式幫助您找到解決方案。我的觀點完全錯誤,僅僅因爲聯盟出於某種模糊的理由根本沒有想到我。我感謝您的關注,即用戶在stackexchange上發佈問題,而不是首先考慮問題。但我認爲很明顯,如果一個OP花了一些時間來解釋這個問題(即格式表結構等),他的智慧就不是懶惰。所以我要感謝jpw和Strawberry,他們實際上都在努力幫助。 – Tomm 2015-02-23 22:24:13

回答

3

使用union all建立一個關係(year, id),並應用min(year)到和group byid

select min(year) min_year, id 
from (
    select year, id1 id from your_table 
    union all 
    select year, id2 id from your_table 
) x 
group by id 
+0

當然...... * facepalm *感謝堆! – Tomm 2015-02-23 22:16:16