SELECT MAX(g.name) AS name, COUNT(DISTINCT b.id) AS cnt
FROM genres AS g
LEFT JOIN book_genres AS bg
ON bg.genre_id = g.id
LEFT JOIN (books AS b INNER JOIN book_reg AS br
ON br.id = b.id AND br.date > '2003-04-12')
ON b.id = bg.book_id
GROUP BY g.id
SELECT
g.name AS genre_name,
COUNT(*) AS book_count
FROM
book_reg br
JOIN
book_genres bg ON br.id = bg.book_id
JOIN
genres g ON bg.genre_id = g.id
WHERE
br.date > '2003-04-12'
GROUP BY
g.name
ORDER BY
book_count DESC;
id name
1 Война и мир
2 Преступление и наказание
3 Мастер и Маргарита
4 Тихий дон
5 Бойцовский Клуб
book_reg - информация о дате регистрации по некоторым книгам в библиотеке.
id date
1 01.05.2006
3 05.07.2004
5 30.09.2015
genres - жанры.
id name
1 Русская классика
2 Зарубежные романы
3 Драма
book_genres - жанры конкретных книг.
book_id Genre_id
1 1
1 3
2 1
3 1
4 1
5 2
5 3
Напишите SQL запрос, который вернет название жанра и кол-во книг в этом жанре, зарегистрированных в библиотеке после 12 апреля 2003 года. Пожалуйста можно подробней написать никак не могу справиться