Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

SQL задача, состоящая из 4х таблиц и операции между ними

Низор Ёров Ученик (94), открыт 3 недели назад
Books - информация о книгах, которые есть в библиотеке.

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 года. Пожалуйста можно подробней написать никак не могу справиться
3 ответа
Skydrogen Знаток (328) 3 недели назад
Сделай его через нейронку и будет тебе ответ
Низор ЁровУченик (94) 3 недели назад
пробовал не дает, не понимает
Андрей Высший разум (435443) 3 недели назад
 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
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (248680) 3 недели назад
 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;
АндрейВысший разум (435443) 3 недели назад
Выдаст только те категории, в которых есть книги, "зарегистрированные в библиотеке после 12 апреля 2003 года". Но в задаче не сказано, что категории с нулевым количеством книг не должны выводиться.
Похожие вопросы