Во-первых, заметка. Вы, вероятно, не хотите делать это.
CTE (запрос WITH) немного нелогичен для людей, которые обычно кодируют, потому что это похоже на переменную, но это не так. На самом деле вы выполняете запрос много раз , чтобы оценить его, что приводит к низкой производительности и дополнительным затратам.
Я рекомендую заменить это на простой JOIN, он достигнет того же самого и, как правило, будет намного лучше.
В основном ваш запрос будет выглядеть так:
WITH list_of_ids AS (
SELECT id FROM table_with_ids
)
SELECT main_table.*
FROM main_table
JOIN list_of_ids
ON main_table.id = list_of_ids.id
Я думаю, что это довольно чистый синтаксис и решает вашу проблему. Дайте мне знать, если мне чего-то не хватает, и я могу добавить к этому.