2014-11-24 108 views
0

我真的可以使用一些幫助,這頭痛...合併查詢記錄到一個

讓我們與足球運動員像這樣的表:

ID|Name|TeamID 
1 |X |10 
2 |Y |11 
3 |Z |12 
etc. 

,並與團隊的表像這樣的比賽:

Home|Away|Result 
10 |11 |0 
10 |12 |1 
10 |13 |1 
etc. 

我想完成的是得到一個結果集看起來像這樣:

HomePlayer1|HomePlayer2|HomePlayer3|AwayPlayer1|AwayPlayer2|AwayPlayer3|Result 
x   |y   |z   |a   |b   |c   |1 
etc. 

我應該採取什麼方法?比方說,兩支球隊的球員數量不變。我是否可以在RDB中做到這一點,沒有任何困難或者我應該以不同的方式思考?

+1

技術術語是**擺動**表格。但據我所知,PIVOT操作不是標準SQL的一部分。 – 2014-11-24 13:14:04

回答

1

儘管在SQL語句中有可能取決於您使用的是哪個RDBMS,但在我看來,在程序上這樣做會更好,無論它是通過程序化SQL實現E.G. Oracle的PL/SQL,或通過從應用程序連接到數據庫,E.G.一個Java應用程序等。

一旦您處於過程SQL或應用程序層中,它只是循環查詢結果並構建結果字符串的一種情況。

+0

好的,我擔心構建這樣的SQL語句會浪費大量時間和資源,所以謝謝你清理這些! – mmatus 2014-11-24 12:38:59

+1

如果有一種標準的SQL方法將來自多個db記錄的數據合併到單個輸出記錄中,那將會很不錯。但沒有。一些SQL的風格有自定義子句,你可以把它放在一個SELECT上來完成這個任務,但是它經常是混亂的。如果可以的話,是的,只需要在代碼中完成。 – Jay 2014-11-24 14:41:44