2012-10-18 6 views
1

세 개의 표가 있습니다. 첫 번째 두 테이블은 비슷한 데이터를 가지고 있지만 다른 소스에서 왔으며 같은 양의 열을 가지고 있지 않습니다. 세 번째 테이블을 사용하여 다른 두 테이블에서 데이터를 수집하고 있습니다. 세 번째 테이블에서 데이터가 나온 테이블의 이름을 가진 열을 원합니다.열에 표 이름 삽입

예 : table_1은 다음 순서로 다음 데이터를 포함합니다.

(ID, 데이터 1, 데이터 2, data_3, data_4, data_5)는

table_2 다음 순서의 다음 데이터를 포함한다.

(ID, data_3, 데이터 1, data_5, 데이터 2, data_4, data_6, data_7)

나는 두 테이블로부터 원하는 데이터가 table_3가 된 table_1 같은 열의 크기가 동일 모인다. table_2

INSERT INTO table_3 
SELECT ID, data_1, data_2, data_3, data_4, data_5 
FROM table_2 

에서 된 table_1

다음
INSERT INTO table_3 
SELECT * FROM table_1 

에서

먼저이 작동하고 난 아무 문제가 없다. 그러나 테이블 _3에서 데이터를 가져온 테이블의 이름을 보유하는 열을 만들고 싶습니다. 나는 이것에 대해 어떻게 가야할지 모르겠다. table_3에 다른 열을 추가하여 이제는 col_6을 가지므로 수동으로 해당 열을 업데이트 할 수 있다고 생각했지만 작동하지 않습니다. 이것이 내가 시도한 것이다.

UPDATE table_3 
SET col_6 = 'table_1' 
WHERE table_3.col_1 = table_1.col_1 

UPDATE table_3 
SET col_6 = 'table_2' 
WHERE table_3.col_1 = table_2.col_1 

위의 사항에 도움이 될만한 것이 있으면 감사드립니다.

답변

1

AFAIK, 자동으로

을이 작업을 수행 할 수있는 방법이 없습니다하지만 당신은 같은 것을 할 수 있습니다

insert into table_3 
    select t.*, 'table_1' 
    from table_1 

그래도 난 당신의 업데이트 문에서 Column_1 wahat 확인 reprsesent하지 않다.

+0

최고에서

INSERT INTO table_3 SELECT *, 'table_1' FROM table_1 

그런 된 table_1에서

첫째, 완벽하게 작동합니다. SELECT를 실제 열 이름으로 지정해야한다고 생각하는 방식으로 열을 만들 수 있는지 전혀 알지 못했습니다. 아주 멋지다. – user1757006

0

신용 user194076로 이동해야하지만, 여기에 더 완전한 대답 : table_2

INSERT INTO table_3 
SELECT ID, data_1, data_2, data_3, data_4, data_5, 'table_2' 
FROM table_2