Insert Select 질문 0 9 1,078

by 김동욱 [SQL Query] [2016.01.22 10:28:04]


INSERT INTO A TABLE
         SELECT 1, 2, 3
           FROM B TABLE
          WHERE B.1 = 조건
         
         

Insert 시 B Table 의 결과값이 A Table 에 이미 있을 경우 제외하고 Insert 를 하려면 Exists 로 해야되나요??

어떻게 해야되는지 답변 부탁드립니다.

by 아발란체 [2016.01.22 10:41:56]
INSERT INTO A TABLE
	SELECT A, B, C FROM A
	MINUS
	SELECT A, B, C FROM B WHERE B.1 = 조건 

 


by 김동욱 [2016.01.22 11:40:48]

SELECT 시 모든 컬럼이 다 들어가야 되나요?


by 아발란체 [2016.01.22 12:03:59]

아니용,  아래처럼 "A(항목1, 항목2)"식으로 기술하여 해당하는 항목만 기술해주면 됩니다.

 

INSRT INTO A(항목1, 항목2)

SELECT A, B FROM A

MUNIS

SELECT A, B FROM B


by 김동욱 [2016.01.22 13:45:50]

munis 를 사용할 경우 A table - B table 의 결과값은 A table 의 데이터와 중복이 됩니다.

B table - A table 의 결과값이 A table에 자료가 없을 경우 insert 를 하고 싶은데 어떻게 해야 되나요..


by 아발란체 [2016.01.22 16:52:21]

아.. 반대로 썼네요,

말씀처럼 b - a 하시고 입력은 

 

INSRT INTO A(항목1, 항목2)
    SELECT A, B FROM B
    MUNIS
    SELECT A, B FROM A

 


by 창조의날개 [2016.01.22 11:25:35]

INSERT INTO ATABLE(COL1, COL2, COL3)
SELECT BB.COL1, BB.COL2, BB.COL3
FROM ATABLE AA
   , BTABLE BB
WHERE AA.COL1(+) = BB.COL1
  AND AA.COL2(+) = BB.COL2
  AND AA.COL3(+) = BB.COL3
  AND AA.COL1 IS NULL
  AND AA.COL2 IS NULL
  AND AA.COL3 IS NULL
  AND BB.COL1 = 조건
;

 


by 김동욱 [2016.01.22 13:46:39]

답변 감사드립니다. 컬럼이 30개 정도가 되면은 하나씩 (+) 를 넣어야 되나요??


by 창조의날개 [2016.01.22 14:40:26]

컬럼 하나라도 다를때 INSERT 해야 한다면..

 

모두 다 넣어야 합니다.

 

비교 하려는 컬럼만 WHERE 조건으로 넣으시면 됩니다..

 

 


by 백면서생 [2016.01.22 14:31:08]

merge 문을 사용하시면 간단해지겠네요.

굳이 insert select 문을 사용하시려면 not exists를 사용한 세미조인 형태가 

나아보이네요.

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입