書籍を注文した顧客の CustID と BookNo を含む Orders テーブルがあります。すべての BookNo を含む別のテーブル Books があります。
BookNo をすべて注文したすべての CustID を表示したいと考えています。
セット内のすべての値を「OR」ではなく「AND」として一致させる「IN」関数のようなものが便利です。
答えではないにしても、簡単な手がかりはありますか?
書籍を注文した顧客の CustID と BookNo を含む Orders テーブルがあります。すべての BookNo を含む別のテーブル Books があります。
BookNo をすべて注文したすべての CustID を表示したいと考えています。
セット内のすべての値を「OR」ではなく「AND」として一致させる「IN」関数のようなものが便利です。
答えではないにしても、簡単な手がかりはありますか?
すべての本を注文した顧客のみを取得するには、顧客ごとにグループ化し、顧客が注文した本の数を数えて、本の総数と比較します。
select c.custid
from customers c
inner join books b on b.bookno = c.bookno
group by c.custid
having count(distinct b.bookno) = (select count(distinct bookno) from books)
select custId from Orders group by CustID by count(*) = (select count(distinct bookNo) from Books);