2013-02-04 55 views
-1

可能重複:
Concatenate many rows into a single text string?SQL - 如何連接的一列

MY SQL:我有一個具有3列的表:

╔═════╦═════╦════════╗ 
║ ID1 ║ ID2 ║ ANSWER ║ 
╠═════╬═════╬════════╣ 
║ 1 ║ 2 ║  4 ║ 
║ 1 ║ 2 ║  5 ║ 
║ 1 ║ 4 ║  8 ║ 
╚═════╩═════╩════════╝ 

而且我想要一個看起來像這樣的桌子:

╔═════╦═════╦════════╗ 
║ ID1 ║ ID2 ║ ANSWER ║ 
╠═════╬═════╬════════╣ 
║ 1 ║ 2 ║ 4 + 5 ║ 
║ 1 ║ 4 ║ 8  ║ 
╚═════╩═════╩════════╝ 

含義:如果我有ID1 & ID2不同的答案,我希望他們能在一排的一些分離器(也可以是+或別的東西),只有一個每對ID1的行,ID2

+3

[RDBMS](http://en.wikipedia.org/wiki/Relational_database_management_system)您使用的是什麼? 'SQL Server'? 'MySQL'? 'Oracle'? 'DB2'?等等.. –

回答

1

在MySQL中,你可以使用GROUP_CONCAT()功能與GROUP BY獲得連接成同一行的Answer值:

select id1, 
    id2, 
    group_concat(answer SEPARATOR ' + ') as Answer 
from yourtable 
group by id1, id2 

SQL Fiddle with Demo

這產生的結果:

| ID1 | ID2 | ANSWER | 
---------------------- 
| 1 | 2 | 4 + 5 | 
| 1 | 4 |  8 | 
1

既然你現在已經提到,您使用的MySQL,你可以採取的GROUP_CONCAT優勢。

SELECT ID1, ID2, GROUP_CONCAT(Answer SEPARATOR ' + ') AnswerList 
FROM tableName 
GROUP BY ID1, ID2 
+0

不客氣':D' –