Я хочу преобразовать этот запрос из not in в not exists
not in
not exists
select id, name, cat from posts where id not in (1, 100)
как превратить это в не существует
SELECT id, NAME, cat FROM posts p WHERE NOT EXISTS (SELECT 1 FROM (SELECT 1 AS col FROM dual UNION SELECT 100 AS col FROM dual) a WHERE p.id = a.col);
Ваш текущий запрос хорош. Но все же, если вы хотите его использовать NOT EXISTS, попробуйте.
Вам не нужно преобразовывать это ... not exists будет уместно, если вы используете подзапрос, а не жестко запрограммированный список значений.
Ваш текущий запрос хорош.