|
| 1 | +/* Вывести название, жанр и цену тех книг, |
| 2 | + количество которых больше 8, |
| 3 | + в отсортированном по убыванию цены виде. |
| 4 | + +-----------------------+------------+--------+ |
| 5 | + | title | name_genre | price | |
| 6 | + +-----------------------+------------+--------+ |
| 7 | + | Стихотворения и поэмы | Поэзия | 650.00 | |
| 8 | + | Игрок | Роман | 480.50 | |
| 9 | + | Идиот | Роман | 460.00 | |
| 10 | + +-----------------------+------------+--------+ */ |
| 11 | +SELECT b.title, g.name_genre, b.price |
| 12 | +FROM genre g |
| 13 | +JOIN book b ON g.genre_id = b.genre_id |
| 14 | +WHERE b.amount > 8 |
| 15 | +ORDER BY b.price DESC; |
| 16 | + |
| 17 | +/* Вывести все жанры, которые не представлены в книгах на складе. */ |
| 18 | +-- 1 variant |
| 19 | +SELECT g.name_genre |
| 20 | +FROM genre g |
| 21 | +LEFT JOIN book b ON g.genre_id = b.genre_id |
| 22 | +WHERE b.genre_id IS NULL; |
| 23 | + |
| 24 | +-- 2 variant |
| 25 | +SELECT name_genre |
| 26 | +FROM book |
| 27 | +RIGHT JOIN genre ON book.genre_id = genre.genre_id |
| 28 | +WHERE isNull(book.genre_id); |
| 29 | + |
| 30 | +/* Необходимо в каждом городе провести выставку книг каждого автора в течение 2020 года. Дату проведения выставки выбрать случайным образом. |
| 31 | + Создать запрос, который выведет город, автора и дату проведения выставки. Последний столбец назвать Дата. |
| 32 | + Информацию вывести, отсортировав сначала в алфавитном порядке по названиям городов, а потом по убыванию дат проведения выставок. */ |
| 33 | +SELECT c.name_city, a.name_author, DATE_ADD('2020-01-01', INTERVAL FLOOR(RAND()*365) DAY) AS Дата |
| 34 | +FROM city c, author a |
| 35 | +ORDER BY name_city, Дата DESC; |
| 36 | + |
| 37 | +/* Вывести информацию о книгах (жанр, книга, автор), относящихся к жанру, включающему слово «роман» в отсортированном по названиям книг виде. */ |
| 38 | +SELECT g.name_genre, b.title, a.name_author |
| 39 | +FROM book b |
| 40 | +JOIN author a USING(author_id) |
| 41 | +JOIN genre g USING(genre_id) |
| 42 | +WHERE g.name_genre = 'Роман' |
| 43 | +ORDER BY b.title; |
| 44 | +/* |
| 45 | +SELECT g.name_genre, b.title, a.name_author |
| 46 | +FROM book b |
| 47 | +JOIN author a ON b.author_id = a.author_id |
| 48 | +JOIN genre g ON b.genre_id = g.genre_id |
| 49 | +WHERE g.name_genre = 'Роман' |
| 50 | +ORDER BY b.title; |
| 51 | +*/ |
| 52 | + |
| 53 | +/* Посчитать количество экземпляров книг каждого автора из таблицы author. |
| 54 | + Вывести тех авторов, количество книг которых меньше 10, |
| 55 | + в отсортированном по возрастанию количества виде. Последний столбец назвать Количество.*/ |
0 commit comments