Если вам нужна книга с большинством копий, вы можете просто присоединиться, упорядочить и ограничить:
select top (1) bl.*, noc.numcopies
from booklist bl
inner join numberofcopies noc on noc.bookid = bl.bookid
order by noc.numcopies desc
Если вы хотите разрешить верхние связи, вы можете использовать top (1) with ties
вместо.
Редактировать : если вы делаете хотите max()
, один из подходов - присоединиться, а затем отфильтровать с помощью коррелированного подзапроса, который получает максимум numcopies
из numberofcopies
.
select bl.*, noc.numberofcopies
from booklist bl
inner join numberofcopies noc on noc.bookid = bl.bookid
where noc.numcopies = (select max(numcopies) from numberofcopies)
Обратите внимание, что для этого требуется еще одно сканирование на numberofcopies
, так что это действительно менее эффективно, чем первое решение.