2014-11-18 2 views
1

다른 두 테이블의 데이터를 삽입하려고합니다. 나는 현재 T1과 T2의 두 테이블이 있습니다MYSQL : 다른 테이블에서 데이터 삽입

T1 :

col1 col2 col3 col4 col5 
A  A  B  A  C 
B  B  C  C  A 
B  C  B  B  A 
C  A  A  A  B 

및 T2 :

내 목표는 단순히 T1과 T2의 데이터를 사용하는 새로운 테이블을 형성하는
  A B C 
col1  4 99 81 
col2  50 26 38 
col3  36 38 11 
col4  16 49 70 
col5  42 83 93 

col1 col2 col3 col4 col5 
4  50 38 16 93 
99 26 11 70 42 
99 38 38 49 42 
81 50 36 16 83 

저는 사례 기능을 사용하고 있지만, t를 붙이는 데 문제가 있습니다. 그는 테이블. 조언?

감사합니다.

+0

당신은 프로그래밍 언어 수준에서 문제를 해결할 수 ?. 때때로 너무 많은 압력이 mysql에 가해진 다. –

+0

내가 사용하고있는 언어 (python)를 사용하면 문제가 해결 될 수 있지만 mysql이 첫 번째 옵션입니다. – jjjayn

+0

왜 새 테이블에 데이터를 저장해야합니까? 가지고있는 데이터를 선택하는 것이 어떻습니까? –

답변

1

우리는 긴 테이블 넓은 테이블에서 t2을 변환하면 :

mysql> CREATE VIEW tidyt2 AS 
     SELECT x as 'col', 'A' as 'label', A 'value' FROM t2 
     UNION SELECT x as 'col', 'B' as 'label', B 'value' FROM t2 
     UNION SELECT x as 'col', 'C' as 'label', C 'value' FROM t2; 

Query OK, 0 rows affected (0.03 sec) 

mysql> select * from tidyt2; 
+------+-------+-------+ 
| col | label | value | 
+------+-------+-------+ 
| col1 | A  |  4 | 
| col2 | A  | 50 | 
| col3 | A  | 36 | 
| col4 | A  | 16 | 
| col5 | A  | 42 | 
| col1 | B  | 99 | 
| col2 | B  | 26 | 
| col3 | B  | 38 | 
| col4 | B  | 49 | 
| col5 | B  | 83 | 
| col1 | C  | 81 | 
| col2 | C  | 38 | 
| col3 | C  | 11 | 
| col4 | C  | 70 | 
| col5 | C  | 93 | 
+------+-------+-------+ 
15 rows in set (0.00 sec) 

그런 다음 왼쪽을 사용하여 표현 될 수 원하는 테이블 조인 :

mysql> SELECT t21.value as 'col1' 
       , t22.value as 'col2' 
       , t23.value as 'col3' 
       , t24.value as 'col4' 
       , t25.value as 'col5' 
     FROM t1 
     LEFT JOIN tidyt2 as t21 ON t1.col1 = t21.label AND t21.col='col1' 
     LEFT JOIN tidyt2 as t22 ON t1.col2 = t22.label AND t22.col='col2' 
     LEFT JOIN tidyt2 as t23 ON t1.col3 = t23.label AND t23.col='col3' 
     LEFT JOIN tidyt2 as t24 ON t1.col4 = t24.label AND t24.col='col4' 
     LEFT JOIN tidyt2 as t25 ON t1.col5 = t25.label AND t25.col='col5'; 

+------+------+------+------+------+ 
| col1 | col2 | col3 | col4 | col5 | 
+------+------+------+------+------+ 
| 4 | 50 | 38 | 16 | 93 | 
| 99 | 26 | 11 | 70 | 42 | 
| 99 | 38 | 38 | 49 | 42 | 
| 81 | 50 | 36 | 16 | 83 | 
+------+------+------+------+------+ 
4 rows in set (0.00 sec) 
관련 문제