Есть таблица journal (id, book_id, reserved_at). Мне нужно по запросу дат (от и до, дата кратна месяцу) получить список книг, которые были взяты. Книга берется в библиотеке, то есть её нельзя взять на 2-3 дня, что упрощает задачу. Сейчас это делается довольно просто:
SELECT
DATE_FORMAT(journal.created_at, '%Y-%m') as date,
count(*) as count,
books.`title` as `book_title`
FROM `journal`
LEFT JOIN books on books.id = journal.book_id
WHERE
journal.`created_at` >= "2018-08-01" AND
journal.`created_at` <= "2019-08-01"
GROUP BY `date`, `book_id`
ORDER BY `date` asc
Но в задаче сказано, что если даже книга не была взята за месяц ни разу (то есть нет записи в таблице journal про эту книгу), то все равно нужно вывести, но count в данном случае будет 0. Сейчас это сделано на стороне бэкенда, нужно сделать это на стороне БД. Каким образом это лучше сделать?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости