쿼리 질문 드립니다. 채택완료
테이블 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 ...
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
채택
채택
답변대기
채택
답변대기
답변대기
채택
채택
답변대기
답변대기
채택
채택
답변대기
채택
답변대기
채택
답변대기
채택