쿼리 질문 드립니다. 채택완료
테이블 table_A 와 table_B 가 있고
table_A라는 테이블 a b c d e 컬럼에 데이터를 insert 하려고 합니다
d라는 컬럼이 table_B의 dd라는 데이터가 들어가야 하는데 table_A 의 dd라는 컬럼과 cc라는 컬럼이 중복해서 들어가면 안됩니다.
</p><p>insert into A (a, b, c, d, e) </p><p>value('aa','bb', 'cc'</p><p>(select cc from table_B where not exists(select dd from table_A where c='cc' and d='dd')), </p><p>'ee')</p><p>
라고 쿼리를 작성했는데 오류코드 1093 나오면서 안되더라구요
어떻게 수정을 해야할까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
8년 전
원하는 의도가 명확하게 파악되지는 않지만
쿼리를 보니
대략적인 방향성은 비슷할것 같아서
오류가 적은 쿼리로 변경해드리면
</p><p>
</p><p>insert into A (a, b, c, d, e) </p><p>select 'aa','bb','cc', cc ,'ee' </p><p>from table_B </p><p>where not exists(select dd from table_A where c='cc' and d='dd')</p><div>
</div><div>
로 실행해보시고, 오류없으면 적용해보세요
value 로 처리할때는 필드가 멀티가 되면 안됩니다.
제가 알려드린방법은
여러 Row가 들어갈수도 있습니다.
exists문을 적절하게 조절하시면 원하는 값만큼만 추가될겁니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 3개
�
8년 전
@우베툰 아. 오해를 하신거 같은데요
'aa', 'bb','cc' 의 ' '안의 값은 그냥 텍스트 입니다.
values 대신에
select 로 구문을 맞추기위해서 조치를 하는것이라서 표현을 한것입니다.
직접 쿼리를 실행시켜보세요
table_B에 존재하는값은 , cc , 이거 하나 일거라는 가정으로 설명드린겁니다.
'cc'와는 다른것인건 아실테고, A (dd) 에 대응하는게 table_B의 cc ...
'aa', 'bb','cc' 의 ' '안의 값은 그냥 텍스트 입니다.
values 대신에
select 로 구문을 맞추기위해서 조치를 하는것이라서 표현을 한것입니다.
직접 쿼리를 실행시켜보세요
table_B에 존재하는값은 , cc , 이거 하나 일거라는 가정으로 설명드린겁니다.
'cc'와는 다른것인건 아실테고, A (dd) 에 대응하는게 table_B의 cc ...
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
채택
답변대기
답변대기
채택
답변대기