2008-11-05 1 views
5

어떻게 만들 수 있습니다SQL에서 다른 테이블에 해당 행이없는 경우 한 테이블에서 행을 삭제하는 방법은 무엇입니까?

ID = 1 AND 줄이없는 한

가 정교하게 아이디 == 포함 foo는에서 삭제, 내가 경우에만, 테이블 foo에서, id = 1있는 행을 제거하는 방법 테이블 bar에 행이없고 id = 1이 있습니다. 나는 당신이 foo는 바 의미가 있으리라 믿고있어

+0

자세한 내용을 입력해야한다고 생각합니다. -> bar에 id == 1이 포함되어 있지 않습니다. 은 나에게 이해가되지 않는 것 같습니다. – EvilTeach

+0

바는 다른 열이나 테이블입니까? –

답변

19
DELETE FROM foo WHERE id=1 AND NOT EXISTS (SELECT * FROM bar WHERE id=1) 

테이블, 그리고 그 줄에 존재하지 않는 경우는 foo는에서 레코드를 제거합니다.

delete f 
from foo f 
left 
join bar b on 
     f.id = b.id 
where f.id = 1 and 
     b.id is null 
+0

정확히 일치 함 : – fmsf

0

를 사용하여 SQL은 "존재"명령 : 조인을 사용하여

관련 문제