SQL запрос, который выведет номер документа, где все значения в join таблице = NULL

Рейтинг: 0Ответов: 2Опубликовано: 21.06.2023

СУБД PostgreSQL.

Таблица info:

введите сюда описание изображения

Таблица addon:

введите сюда описание изображения

Связаны между собой по id.

Вопрос: как найти нужный ID документа в таблице info, для которого в таблице addon все записи в поле item равны NULL.

Т.е. я должен найти именно 44 айди документа в info, тк для 45-го документа минимум 1 запись не равна NULL в таблице addon.

Получается только для хотя бы 1 записи, а для всех - не понятно как...

select id from info i 
join addon a using(id)
where a.item is null
group by id 

Ответы

▲ 3
SELECT id
FROM info
WHERE NOT EXISTS (
    SELECT NULL
    FROM addon
    WHERE info.id = addon.id
      AND addon.item IS NOT NULL
    )
▲ 1
SELECT info.ID
FROM info INNER JOIN addon ON info.ID = addon.ID
GROUP BY info.ID
HAVING (NOT (((MIN(addon.item)) IS NOT NULL)));

Заменил FIRST на MIN, должно работать в постгресе