쿼리 질문 드립니다.

쿼리 질문 드립니다.

QA

쿼리 질문 드립니다.

본문

테이블 table_A 와 table_B 가 있고


table_A라는 테이블 a b c d e 컬럼에 데이터를 insert 하려고 합니다


d라는 컬럼이 table_B의 dd라는 데이터가 들어가야 하는데 table_A 의 dd라는 컬럼과 cc라는 컬럼이 중복해서 들어가면 안됩니다.


insert into A (a, b, c, d, e) 
value('aa','bb', 'cc'
(select cc from table_B where not exists(select dd from table_A where c='cc' and d='dd')), 
'ee')


라고 쿼리를 작성했는데 오류코드 1093 나오면서 안되더라구요


어떻게 수정을 해야할까요?

이 질문에 댓글 쓰기 :

답변 1

원하는 의도가 명확하게 파악되지는 않지만


쿼리를 보니


대략적인 방향성은 비슷할것 같아서


오류가 적은 쿼리로 변경해드리면



insert into A (a, b, c, d, e) 
select 'aa','bb','cc', cc ,'ee' 
from table_B 
where not exists(select dd from table_A where c='cc' and d='dd')

로 실행해보시고, 오류없으면 적용해보세요

value 로 처리할때는 필드가 멀티가 되면 안됩니다.
제가 알려드린방법은
여러 Row가 들어갈수도 있습니다.
exists문을 적절하게 조절하시면 원하는 값만큼만 추가될겁니다.

아. 오해를 하신거 같은데요

'aa', 'bb','cc' 의  ' '안의 값은 그냥 텍스트 입니다.
values 대신에
select 로 구문을 맞추기위해서 조치를 하는것이라서 표현을 한것입니다.

직접 쿼리를 실행시켜보세요
table_B에 존재하는값은 , cc , 이거 하나 일거라는 가정으로 설명드린겁니다.
'cc'와는 다른것인건 아실테고, A (dd) 에 대응하는게 table_B의 cc ...

답변을 작성하시기 전에 로그인 해주세요.
전체 123,684 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT