2009-05-13 5 views
18

TableX에서 colA의 값을 가져오고 TableY에서 colB 값을 가져오고 TableZ에서 colC 값을 얻으면 어떻게 INSERT 문을 작성합니까?SQL : INSERT INTO ... VALUES..SELECT

예 : TableA의 삽입 반 (COLA, COLB, COLC) 가치 가능한 경우

모든 아이디어 (???)? 물론

+0

이 Java입니까? 이음새가 단순한 SQL 문제가되거나 뭔가를 놓쳤는가? –

+0

자바 태그가 우연히 추가 된 것 같습니다. 제거 할 수 있는지 확인합니다. – Andomar

+0

원래 포스터에는 어떤 변화가 있습니까? 포인트가 없습니다. 관리자가 여기에서 답변을 선택할 수있는 기회가 있습니까? –

답변

33
INSERT INTO TableA(colA, colB, colC) 
    SELECT TableX.valA, TableY.valB, TableZ.valC 
    FROM TableX 
    INNER JOIN TableY ON :...... 
    INNER JOIN TableZ ON ........ 

, TABLEX, TABLEY 및 TAbleZ도 (INNER되지는 가입) 다른 방법으로 관련 될 수 있습니다.

는 AT ALL 테이블 사이의 관계를 찾을 수없는 경우, 당신은 또한 할 수있는 세 개의 분리 된 후

SELECT @value1 = valA FROM TableX WHERE ...... 
SELECT @value2 = valB FROM TableY WHERE ...... 
SELECT @value3 = valC FROM TableZ WHERE ...... 

같은 삽입 : 궁극적 인 최후의 수단을의

INSERT INTO TableA(colA, colB, colC) 
      VALUES(@value1, @value2, @value3) 

, 당신 하나의 SELECT 문에 모든 것을 표현할 수는 없습니다.

마크

+0

valA, valB, valC 다른 테이블에서 ... –

4
Insert into TableA (ColA, ColB, ColC) . . . 

(가) 표 A. 에 당신은 당신이 선택을 할 테이블을 조인해야합니다

Insert into TableA (ColA, ColB, ColC) . . . 
Select TableX.Col1, TableY.Col1, TableZ.Col5 
From TableX, TableY, TableZ 
Where . . . 
+0

좋아 .. 좋은 ... 나는이 방법을 사용하여 값을 frm 메서드 (예 : 메서드())? –

+0

죄송합니다. Java를 사용하지 않습니다. –

22
:

www.w3schools.com/sql/sql_join.asp

또한 SQL의 기초를 덮 www.simple-talk.com에서 사람에서이 무료 PDF 책을 확인 할 수 있습니다

marc_s의 답변에 대한 답변을 얻으려면 관련없는 테이블에서 다음을 선택하십시오.

INSERT INTO TableA 
    (colA, colB, colC) 
SELECT 
    (SELECT valA FROM TableX WHERE ...), 
    (SELECT valB FROM TableY WHERE ...), 
    (SELECT valC FROM TableZ WHERE ...) 
+4

+1 - 훌륭한 답변입니다 - 감사합니다! 매일 새로운 것을 배웁니다 .... –

관련 문제