Есть две таблицы:
Книга
id / название / описание
Выданные книги (выдача)
id_выдачи / id_книги / дата_выдачи / дата_возврата
Дата возврата книги заполняется только при сдаче книги, когда книга на руках - там
NULL
Выполняю запрос с дополнительным столбцом, в котором будет писаться "Нет в наличии", если книга на выдаче (дата возврата =
NULL)
и "В наличии", если книга сдана (дата возврата заполнена) или ни разу не выдавалась (нет в таблице выдачи)
SELECT b.id, b.title,
CASE WHEN b.id NOT IN (SELECT ib.book_id FROM issued_book ib)
OR (b.id IN (SELECT ib.book_id FROM issued_book ib) AND ib.date_return IS NOT NULL) THEN 'В наличии'
ELSE 'Нет в наличии'
END AS Наличие
FROM book b
LEFT JOIN issued_book ib ON ib.book_id = b.id
Если книгу сдадут, и возьмут ещё раз, то появляется вторая запись этой книги:
Как выполнить запрос так, что бы для каждой книги бралась последняя запись из таблицы выдачи?