Запрос на записи со значением NULL в дате

Учёт компьютеров В таблице "pc" хранится справочная информация о всех комьпютерах.

Есть таблица "history!, в которой значение NULL поля "date_return" означает, что компьютер находится у пользователя, а заполненное значение, что он вернул его - компьютер свободен. Я делаю запрос на свободные компьютеры:

SELECT id, mb, cpu, ram, gpu, drive, drive2, psu, asset_tag 
FROM pc LEFT JOIN history h on pc.id = h.pc_id
WHERE h.pc_id IS NULL OR (date IN (SELECT MAX(date) FROM history) AND h.date_return IS NOT NULL)

"(date IN (SELECT MAX(date) FROM history) AND h.date_return IS NOT NULL)" - условие означает, что нужна самая поздняя дата с ненулевой датой возвращения.

h.pc_id IS NULL - компьютеры, записей которых нет в таблице историй.

Получаю неутешительный результат:

Часть строк по запросу

Ведь в history по идее некоторые компьютеры освободились:

Часть таблицы history

Вопреки ожиданиям и своей логике я не вижу по запросу компьютеры №1 и №7. Отсутствие 3, 5 и 8-го компьютера понятно. Как написать правильный запрос? ПОжалуйста, помогите


Ответы (0 шт):