@estry

Как составить запрос SQL с возвратом отсутствующих значений?

Есть таблица в базе данных PostgreSQL. В ней простые столбцы - id, name, age.
Необходимо составить запрос который будет возвращать несуществующие значения.

Например, у меня 10 записей в таблице, в столбце id, у меня цифры от 1 до 10. Делаю запрос с указанием цирф 1,3,6,12,17. И так как 12 и 17 в таблице нет, то мне возвращаются цифры 12,17

Запрос SELECT составить труда не возникло:

SELECT id FROM test WHERE id=1 OR id=3 OR id=6, OR id=12 OR id=17

А вот как получить обратное, те значения, которых нет?
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 3
@nApoBo3
Идея не очень хорошая, что-то вы делаете не так.
Но если очень нужно, можно например так.
select a,b
from (
values (1), (2), (3)
) s(a)
left join
(
values (1), (4), (3)
) f(b)
on a = b

Вместо f(b) подставляйте любую таблицу по желанию.
Ответ написан
Комментировать
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
select n from unnest(array[1, 3, 5, 7]) n
left join test on n = id
where id is null;


Postgres sandbox
Ответ написан
Комментировать
Alexeytur
@Alexeytur
SELECT id FROM test WHERE id NOT IN (<список цифр>)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы