MySQL Подскажите как найти авторов, книги которых никогда не выдавал библиотекарь конкретной должности

Могу вывести только должности и какие авторов каких книг выдал:

SELECT 
    positions,
    GROUP_CONCAT( DISTINCT book_works.author ) as author
FROM book_delivery
JOIN book_works USING(name_book)
JOIN library_staff USING(fio)
GROUP BY positions
ORDER BY positions;

А как найти авторов, книги которых никогда не выдавал библиотекарь конкретной должности?

select author from book_works
where book_works.author not in (select author from book_delivery ); 

Схема базы данных:

CREATE TABLE book_works
(
    name_book varchar(15) NOT NULL PRIMARY KEY,
    author varchar (15) NOT NULL
);

CREATE TABLE book_delivery
(
    id_delivery int  NOT NULL AUTO_INCREMENT,
    fio varchar(25) NOT NULL,
    name_book varchar(15) NOT NULL,
    PRIMARY KEY (id_delivery),
    FOREIGN KEY (name_book) REFERENCES book_works(name_book),
    FOREIGN KEY (fio) REFERENCES library_staff(fio)
);

CREATE TABLE library_staff
(
    fio varchar(25) NOT NULL,
    positions varchar(10) NOT NULL,
    PRIMARY KEY (fio)
);

Ответы (1 шт):

Автор решения: Sergey Rufanov

Cамое простое - взять список всех авторов книг, да из него убрать тех, книги которых когда-либо выдавались работниками указанной должности:

select distinct author
from book_works w
where w.author not in (
    select w.author
    from book_delivery d
    join book_works w on w.name_book = d.name_book
    join library_staff s on s.fio = d.fio
    where
        s.positions = 'должность'
)
→ Ссылка