Между книгами и категориями существует отношение «многие ко многим», а таблица размещения - это таблица пересечений. Таким образом, я думаю, что один из способов создать ваш $ select - использовать внутреннее соединение следующим образом:
$placementModel = new Your_Model_Table_Placement();
$select = $placementModel->select(Zend_Db_Table::SELECT_WITH_FROM_PART)->setIntegrityCheck(false);
$select->joinInner('BOOKS', 'BOOKS.book_id = PLACEMENT.placement_book_id');
$select->where('PLACEMENT.placement_category_id = ?', $categoryID);
$adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
// check the result if they are what you expect
var_dump($adapter->getItems(0, 5)->toArray());
Конечно, имена таблиц и моделей должны соответствовать вашим реальным именам.
Другим способом было бы создать представление в вашей базе данных. Тогда вы создадите модель для вида. Это сделает $ select короче.