Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Составление SQL-запросов > Удаление данных из таблицы по условию |
Автор: SQL123 12.11.2022, 20:20 |
Помогите, пожалуйста, решить задание. Уже всю голову сломал. Задание Из таблицы author удалить всех авторов, книги которых ни разу не заказывали. Структура таблиц: author (author_id, name_author); genre (genre_id , name_genre); book (book_id, title, author_id, genre_id, price, amount); city (city_id, name_city, days_delivery); client (client_id, name_client, city_id, email); buy (buy_id, buy_description, client_id); buy_book (buy_book_id, buy_id, book_id, amount); step (step_id, name_step); buy_step (buy_step_id, buy_id, step_id, date_step_beg, date_step_end); Результат (первые строки таблицы author): +-----------+------------------+ | author_id | name_author | +-----------+------------------+ | 1 | Булгаков М.А. | ... +-----------+------------------+ Мое неправильное решение: WITH authors_wo_sales AS ( SELECT author.author_id, COUNT(buy_book.book_id) as salescount FROM author LEFT JOIN book ON author.author_id = book.author_id LEFT JOIN buy_book ON book.book_id = buy_book.book_id ) DELETE author FROM author INNER JOIN authors_wo_sales ON authors_wo_sales.author_id = author.author_id WHERE authors_wo_sales.salescount = 0; |
Автор: Akina 12.11.2022, 22:39 | ||||
Схематично:
Возможно, в подзапросе будет участвовать более одной таблицы, типа:
|