2017-01-30 59 views
1

我想請求幫助。我試圖將多行組合成多行 - 列。 這裏的表想組:MySQL組行信息列基於一個表內的列值

+----+------+--------+--------+-------+ | id | type | index1 | index2 | value | +----+------+--------+--------+-------+ | 33 | v1 | 1 | 8 | 1a | | 33 | v1 | 2 | 6 | 1b | | 33 | v1 | 3 | 3 | 1c | | 33 | v2 | | 3 | 2x | | 33 | v2 | | 8 | 2y | | 33 | v2 | | 6 | 2z | | 34 | v1 | 1 | 5 | 1ass | | 34 | v1 | 2 | 3 | 1bss | | 34 | v1 | 3 | 4 | 1css | | 34 | v2 | | 3 | 2xss | | 34 | v2 | | 4 | 2yss | | 34 | v2 | | 5 | 2zss | +----+------+--------+--------+-------+

索引1用來保持索引2的秩序,它與V2類型值連接。

這是結果應該什麼樣子:

+----+--------+--------+------+------+ | id | index1 | index2 | v1 | v2 | +----+--------+--------+------+------+ | 33 | 1 | 8 | 1a | 2y | | 33 | 2 | 6 | 1b | 2z | | 33 | 3 | 3 | 1c | 2x | | 34 | 1 | 5 | 1ass | 2zss | | 34 | 2 | 3 | 1bss | 2xss | | 34 | 3 | 4 | 1css | 2yss | +----+--------+--------+------+------+

感謝, T.

+0

的可能的複製[MySQL的數據透視表] (http://stackoverflow.com/questions/7674786/mysql-pivot-table) –

回答

0

這是你想要的:

select 
    t1.id, 
    t1.index1, 
    t1.index2, 
    t1.value v1 
    t2.value v2 
from (
    select * 
    from your_table 
    where type = 'v1' 
) t1 left join (
    select * 
    from your_table 
    where type = 'v2' 
) t2 on t1.id = t2.id 
and t1.index2 = t2.index2; 
+0

這工作,但我怎麼能添加更多的類型? –

+0

好了:)它在我的表中有不正確的值。只需添加額外的JOIN,它就像預期的那樣工作。謝謝! –

相關問題