Estoy teniendo algunos problemas de traducción de esta consulta para utilizar de ZF Zend_Db_Select
:Traducción de una consulta para utilizar 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
(esta consulta funciona y devuelve los resultados)
Memberships
es una tabla vínculo entre blogs
y users
. Es un asunto simple | id | blog_id | user_id |
.
Esto es lo que tengo hasta ahora:
// $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);
Este es el (extraño (para mí)) error que estoy consiguiendo:
#0: Select query cannot join with another table
Se produjo en la línea 211 de
D:\...\library\Zend\Db\Table\Select.php
.
Gracias por su ayuda.
Esto funcionó como yo quería. Sin embargo, parece devolver los resultados como una matriz, en lugar de como un objeto? No es un problema, solo me pregunto por qué. – Ross
No debería, en realidad. ¿Cómo se ejecuta la instrucción select? $ select-> query() debería devolver un PDO_Statement o un Zend_Db_Statement. –