Клиенты и корзины: все позиции

SQLJunior5 минпроверка — Спринтзапрос · PostgreSQL14-t012
CREATE TABLE client (
    id      INTEGER PRIMARY KEY,
    email   VARCHAR(100) NOT NULL,
    country CHAR(2)      NOT NULL
);
CREATE TABLE basket_item (
    id        INTEGER PRIMARY KEY,
    client_id INTEGER     NOT NULL,
    title     VARCHAR(20) NOT NULL,
    amount    INTEGER     NOT NULL,
    price     INTEGER     NOT NULL
);

amount — количество штук, price — цена за штуку.

Запрос 1: выведи построчно всех клиентов (id, email) и все позиции их корзины (title, amount). Клиенты с пустой корзиной тоже должны попасть в выдачу.

schema.sqlsql
1CREATE TABLE client (2    id      integer PRIMARY KEY,3    email   varchar(100) NOT NULL,4    country char(2)      NOT NULL5);6CREATE TABLE basket_item (7    id        integer PRIMARY KEY,8    client_id integer     NOT NULL,9    title     varchar(20) NOT NULL,10    amount    integer     NOT NULL,11    price     integer     NOT NULL12);13INSERT INTO client VALUES14    (1, 'a@ex.com', 'DE'), (2, 'b@ex.com', 'DE'), (3, 'c@ex.com', 'RU'), (4, 'd@ex.com', 'DE'),15    (5, 'e@ex.com', 'US'), (6, 'f@ex.com', 'RU'), (7, 'g@ex.com', 'DE'), (8, 'h@ex.com', 'RU'),16    (9, 'i@ex.com', 'US'), (10, 'j@ex.com', 'DE'), (11, 'k@ex.com', 'RU'), (12, 'l@ex.com', 'US'),17    (13, 'm@ex.com', 'DE');18-- у клиента 4 корзина пустая; суммы amount*price различаются, сумма price даёт другой порядок19INSERT INTO basket_item VALUES20    (1, 1, 'pen', 10, 50), (2, 1, 'book', 1, 500),21    (3, 2, 'laptop', 1, 900), (4, 2, 'mouse', 1, 99),22    (5, 3, 'phone', 1, 3000),23    (6, 5, 'tv', 1, 2500),24    (7, 6, 'cable', 20, 30),25    (8, 7, 'chair', 4, 400),26    (9, 8, 'desk', 1, 700),27    (10, 9, 'lamp', 3, 120),28    (11, 10, 'mug', 2, 100),29    (12, 11, 'bag', 1, 1200),30    (13, 12, 'shoes', 1, 450),31    (14, 13, 'watch', 1, 5000), (15, 13, 'strap', 2, 25);
⌘ Enter — проверить