Библиотека: книги и их авторы

SQLJunior20 минпроверка — Спринтзапрос · PostgreSQL14-t002

Библиотека: у книги может быть несколько авторов, у автора — несколько книг (many-to-many). Эталонная схема: authors, books, связующая book_authors.

Запрос 1: для каждой книги выведи title и список авторов через запятую в алфавитном порядке (authors). Книги, у которых авторов в базе нет, тоже нужны — с NULL.

schema.sqlsql
1CREATE TABLE authors (2    id   int  PRIMARY KEY,3    name text NOT NULL4);5CREATE TABLE books (6    id    int  PRIMARY KEY,7    title text NOT NULL,8    year  int9);10CREATE TABLE book_authors (11    book_id   int NOT NULL REFERENCES books (id) ON DELETE CASCADE,12    author_id int NOT NULL REFERENCES authors (id) ON DELETE CASCADE,13    PRIMARY KEY (book_id, author_id)14);15CREATE INDEX book_authors_author_id_idx ON book_authors (author_id);16INSERT INTO authors VALUES (1, 'Ильф'), (2, 'Петров'), (3, 'Булгаков'), (4, 'Пелевин');17INSERT INTO books VALUES18    (1, 'Двенадцать стульев', 1928), (2, 'Золотой телёнок', 1931),19    (3, 'Мастер и Маргарита', 1967), (4, 'Записки охотника', 1852);20-- книга 4 без автора в базе, автор 4 без книг21INSERT INTO book_authors VALUES (1, 1), (1, 2), (2, 1), (2, 2), (3, 3);
⌘ Enter — проверить