Вы, похоже, хотите подзапрос not exists
:
delete from purchaseorders po
where not exists (select 1
from purchaseorderline pol
where po.purchaseid = ol.purchaseid
);
Эквивалентная формулировка: left join
:
delete po
from purchaseorders po left join
purchaseorderline pol
on po.purchaseid = ol.purchaseid
where pol.purchaseid is null;
Я настоятельно не рекомендую вам использовать NOT IN
с подзапросом. Он не работает должным образом, если любые значения в подзапросе возвращают NULL
. Поскольку есть другие способы выразить предполагаемую логику, я рекомендую привыкнуть использовать эти другие способы, чтобы избежать будущих ошибок.