Каким образом добавить строки в результат запроса, которых нет в таблице?

81
01 июня 2021, 06:10

Есть таблица 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. Сейчас это сделано на стороне бэкенда, нужно сделать это на стороне БД. Каким образом это лучше сделать?

READ ALSO
реализация модели mvc php

реализация модели mvc php

Есть проблема подключения модели в контроллерeЯ создал основной метод для подключения файлов моделеи который вызывается при необходимости

164
Выполнить код перед отправкой страницы

Выполнить код перед отправкой страницы

Собственно сабж: гугл добавил новый атрибут loading для автоматической ленивой загрузки изображенийКак можно выполнить код на любом языке,...

223
Есть ли готовые библиотеки календаря для telegram bot реализованные на php?

Есть ли готовые библиотеки календаря для telegram bot реализованные на php?

Возможно кому то встречались готовые решения(библиотеки) подобные этой https://githubcom/grcanosa/telegram-calendar-keyboard, написанные на php Буду очень благодарен...

79
Как вычислить расхождение 2 многомерных массивов?

Как вычислить расхождение 2 многомерных массивов?

У меня есть 2 многомерных массива, мне нужно вычислить расхождение между ними, я пробовал их сравнить функцией array_diff но выводит ошибку, как...

94