ksd 님이 쓰신 글 :
: Firebird-2.0.0.12484-0-Win32.exe
: Firebird_ODBC_1.2.0.69-Win32.exe
: 를 설치하여 사용중 입니다.
:
: delete from a where a.no = ( select b.no from b where b.c1 = 조건 ) ;
: 와 같은 문장을 사용하고 싶습니다.
: 형식은 관계없이 b 테이블에서 검색된 자료와 일치하는 a 테이블의 자료를 삭제하고 싶습니다.
:
: subquery 결과가 한건인경우는 실행되는것 같은데 여러건의 자료가 검색된경우
: 여러건의 자료가 검색 되었다는 메세지가 나타납니다.
:
: 부탁 드립니다.
:
: delete from a where EXISTS ( select * from b where b.c1 = 조건 and b.no = a.no ) ;
: 이 문장은 실행 됩니다. 다만 시간이 많이 걸리는 군요.
delete from a where a.no = ( select b.no from b where b.c1 = 조건 ) ;
이문장이 에러가 나는것은 삭제 조건이 = 로 한개의 값을 원하는데..
select b.no from b where b.c1 = 조건 요기서 한건 이상이 되면 당연히 에러 나겠지요..
delete from a where a.no in ( , , ,) .. 요런 방법을 생각해 보세요..
delete from a where a.no in ( select distinct b.no from b where b.c1 = 조건 )
뭐 이렇게요...
바로 delete 하지 마시고 저 조건으로 select 먼저 해 보신후..ㅎㅎㅎ
|