用于查找每个boook至少具有2个副本的分支的赋值sql

问题描述

||
   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,Num_copies)
    LIBRARY_BANCH (Branch_ID [pk],Branch_Name,Address)
但是,我试着做这个问题,但是问题是检查2个副本。     

解决方法

您可能会发现有关关系划分的这篇文章很有用。
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))