1
select *
from table1 t1,
table2 t2,
table3 t3
where t2.parent_id = t1.row_id
and t2.xyz is not null
and (
select count(*)
from table3
where xyz = t2.row_id
) = 0;
작동 여부 내 하위 쿼리에서 별칭 t2를 사용하고 있습니다.WHERE 절의 개수 지정
필자의 요구 사항은 table3의 열 xyz가 table2의 row_id로 저장되는 table3에 레코드가 없다는 where 절의 조건을 지정하는 것입니다.
사용중인 SQL 버전을 직접 확인해 보셨습니까? count 서브 쿼리 대신에 WHERE NOT EXISTS를 사용할 수도 있습니다. 현재'table2'와'table3' 사이에서 교차 결합을하고 있습니다. 아마도 의도 한 것과 다를 것입니다. –
스택 교환 하위 사이트 코드 검토에있을 수 있습니다. – Edward
오늘의 팁 : 모던하고 명시적인'JOIN' 구문으로 전환하십시오! (아래의 @ GurV의 대답과 같습니다.) – jarlh