Запрос на записи со значением 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 по идее некоторые компьютеры освободились:
Вопреки ожиданиям и своей логике я не вижу по запросу компьютеры №1 и №7. Отсутствие 3, 5 и 8-го компьютера понятно. Как написать правильный запрос? ПОжалуйста, помогите