select subject_name from subject where subject_id in(select a.call_number as call_number from subject_of_book a,book b group by a.subject having count(a.call_number)=count(b.*))瞎写的,可能不行,你可以按这个思路去想一下(我写的不是oracle 格式)
select c.subject_id,c.subject_name from (select count(*) count1 from Book) a, (select subject_id,count(*) count1 from Subject_of_book group by subject_id) b, Subject c where a.count1=b.count1 and b.subject_id=c.subject_id;
c.subject_id,c.subject_name
from
(select count(*) count1 from Book) a,
(select subject_id,count(*) count1 from Subject_of_book group by subject_id) b,
Subject c
where
a.count1=b.count1 and
b.subject_id=c.subject_id;
2楼的count(*)也许可以用count(1)