#mysql
#mysql
Вопрос:
Q. List the branch id and name of all branches that have atleast 2 copies of every
book.
Таблицы:
BOOK (Book_ISBN [pk], Title, Publisher_Name [fk])
BOOK_COPIES (Book_ISBN [pk,fk], Branch_ID [pk,fk], Num_Copies)
LIBRARY_BANCH (Branch_ID [pk], Branch_Name, Address)
Тем не менее, я пытался задать этот вопрос, но проблема заключалась в том, что проверялось наличие 2 копий.
Комментарии:
1. Предположительно, существует также таблица с именем
BOOKS
?
Ответ №1:
Возможно, вам пригодится эта статья о реляционном разделении.
SELECT L.Branch_ID,
L.Branch_Name
FROM LIBRARY_BRANCH L
WHERE NOT EXISTS (SELECT *
FROM BOOK B
WHERE NOT EXISTS(SELECT *
FROM BOOK_COPIES BC
WHERE BC.Book_ISBN = B.Book_ISBN
AND Num_Copies >= 2
AND L.Branch_ID = BC.Branch_ID))