Заявка №1 не е елегантният начин за това... (НЕ) IN SELECT е добре за няколко записа, но не може да използва индекси (Seq Scan
).
Преди да има EXCEPT... ето как се прави с JOIN (HASH JOIN
):
SELECT sp.id
FROM subsource_position AS sp
LEFT JOIN subsource AS s ON (s.postion_id = sp.id)
WHERE
s.postion_id IS NULL
ОСВЕН се появи в Postgres много, много отдавна... Но например, използвайки MySQL, вярвам, че това все още е единственият начин да се постигне това с помощта на индексни кръстовища.