2017-01-30 1 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 | +----+------+--------+--------+-------+

INDEX1이 index2의 순서를 유지 및 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을 추가하고 의도 한대로 작동합니다. 감사! –