Mam pewne problemy tłumaczenia tej kwerendy w użyciu ZF na Zend_Db_Select
:Przełożenie zapytanie do korzystania Zend_Db_Select
SELECT b.id, b.title, b.description
FROM memberships AS m
JOIN blogs AS b ON b.id = m.blog_id
WHERE m.user_id = ?
ORDER BY m.created
LIMIT 0, 30
(ta kwerenda działa i zwraca wyniki)
Memberships
jest stół związek między blogs
i users
. To prosta sprawa z | id | blog_id | user_id |
.
Oto co mam do tej pory:
// $table = Zend_Db_Table instance, $id = a user id
$select = $table->select()
->from(array('m' => 'memberships'), array('b.id', 'b.title', 'b.description'))
->join(array('b' => 'blogs'), 'b.id = m.blog_id')
->where('m.user_id = ?', (int) $id)
->order('m.created DESC')
->limit(0, 30);
Jest to (dziwne (dla mnie)) Błąd Dostaję:
#0: Select query cannot join with another table
doszło na linii 211
D:\...\library\Zend\Db\Table\Select.php
.
Dzięki za pomoc.
To działało jak chciałem go. Jednak wydaje się, że wyniki są zwracane jako tablica, a nie jako obiekt? Nie stanowi problemu, tylko zastanawiam się, dlaczego. – Ross
Właściwie to nie powinno. Jak wykonać instrukcję select? $ select-> query() powinno zwrócić wartość PDO_Statement lub Zend_Db_Statement. –