присвоение sql для поиска ветвей с минимум 2 копиями каждого boook

#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))