我需要从书架上获取一个id(或*,无论如何),其中包含出版商为我正在进行的这个项目发布的大多数书籍,但我无法理解查询权利。我使用普通的SQL。
答案 0 :(得分:0)
这应该这样做,但由于您可能会获得多个具有相同最大数量的货架,因此可能会返回多个货架ID。如果这不是您想要的,您可以通过多种方式将其剪切为单个ID,例如通过在shelf_id上执行MIN()。
select b.id_shelf
from (select s.id_shelf,
count(*) as sp_count
from shelf s,
book b
where s.id_shelf = b.id_shelf
and b.publisher = @publisher
group by s.id_shelf
) b
where b.sp_count = (select max(a.sp_count)
from (select s.id_shelf,
count(*) as sp_count
from shelf s,
book b
where s.id_shelf = b.id_shelf
and b.publisher = @publisher
group by s.id_shelf
) a
) b