クエリ#1は、これを行うための洗練された方法ではありません...(NOT)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
EXCEPTはずっと昔にPostgresに登場しました...しかし、たとえば、MySQLを使用すると、これがインデックスジャンクションを使用してこれを実現する唯一の方法であると私は信じています。