$models = new Models();
$select = $models->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
$select->setIntegrityCheck(false)
->join(array("a"=>"manufacturers"), 'models.manufacturer_id = a.id',
array("man_name"=>"name", "man_description"=>"description"))
->where("a.name LIKE 'A%'");
$rowset = $models->fetchAll($select);
За съжаление Zend_Db_Table
relations интерфейсът няма много интелигентност в него, свързана със създаването на обединени заявки от неговата декларирана референтна карта. Допринесеното от общността решение за сложни заявки е Zend_Db_Table_Select
фабрика за заявки.
Имайте предвид, че трябва да дадете псевдоними на колони за името и описанието на производителя, в противен случай тези колони ще потиснат името и описанието на модела в асоциативния масив за данните от редовете. Трябва да именувате колоните ясно, за да избегнете това.
Но във вашия случай бих пропуснал интерфейса на таблицата и интерфейса за избор и просто бих изпълнил SQL заявка директно с помощта на Db адаптера:
$data = $db->fetchAll("
SELECT m.*, a.name AS man_name, a.description AS man_description
FROM Models m JOIN Manufacturers a ON m.manufacturer_id = a.id
WHERE a.name LIKE 'A%'");
Ще получите обратно данните като прост масив от асоциативни масиви, а не като Zend_Db_Table_Rowset
. Но тъй като присъединен набор от редове така или иначе не може да се записва, не сте пожертвали много.