$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);
Rất tiếc, Zend_Db_Table
Giao diện mối quan hệ không có nhiều thông tin liên quan đến việc tạo các truy vấn được kết hợp từ bản đồ tham chiếu đã khai báo của nó. Giải pháp do cộng đồng đóng góp cho các truy vấn phức tạp là Zend_Db_Table_Select
nhà máy truy vấn.
Lưu ý rằng bạn phải cung cấp bí danh cột cho tên và mô tả của nhà sản xuất, nếu không các cột này sẽ chặn tên và mô tả của mô hình trong mảng kết hợp cho dữ liệu hàng. Bạn nên đặt tên các cột rõ ràng để tránh điều này.
Nhưng trong trường hợp của bạn, tôi sẽ bỏ qua giao diện bảng và giao diện chọn, và chỉ cần thực hiện truy vấn SQL trực tiếp bằng bộ điều hợp 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%'");
Bạn sẽ lấy lại dữ liệu dưới dạng một mảng mảng kết hợp đơn giản, không phải dưới dạng Zend_Db_Table_Rowset
. Nhưng vì dù sao thì một bộ row đã tham gia cũng không thể ghi được nên bạn đã không hy sinh nhiều.