2017-01-31 9 views
0

:SELECT의 결과를 기존 테이블의 새 열로 추가하려면 어떻게합니까? SQL (당신이 좋아하는 MySQL의 또는 MonetDB 말 중 변형)이 할 매우 직관적이고 간단합니다에서

CREATE TABLE t2 AS SELECT c1 FROM t1; 

및 새 테이블에 새 열로 선택 결과를 얻을. 그러나 결과를 같은 테이블 (테이블 t1)의 새로운 열로 나타내려면 어떻게해야합니까? c1INT이고 null 일 수 있습니다. 우리는 쓸 필요가 :

ALTER TABLE t1 ADD c2 INT; 
UPDATE TABLE t1 SET c2 = c1; 

를하고 우리가 어떤 값으로 새 열을 초기화 할 필요가 null이 아닌 열이 있다면 이후 즉, 쉬운 버전입니다; 데이터가 여러 테이블에서 오는 경우 UPDATE (가능한 모든 경우)에서 내부 쿼리가 필요합니다.

어떻게 든 하나의 명령으로 열을 선택할 수 있습니까?

답변

1

당신은 join를 사용

?
UPDATE t1 JOIN 
     t2 
     ON t2.? = t1.? 
    SET t1.c2 = t2.c1; 

t1에있는 행을 업데이트해야합니다 t2에서 행의 정체성에 사용되는 컬럼에 대한 자리 표시 자입니다.

+0

하지만 't2'가 없습니다. 나는't1'만을 가지고 있습니다. 나는't2'를 만드는 것을 피하고 싶습니다. – einpoklum