Estoy intentando hacer una combinación en 2 tablas en Zend, usando la estructura DbTable/model/mapper. Si, en mi asignador, hago esto:"IS NULL" en Zend_Db_Table select not working
$select = $this->getDbTable()->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
->setIntegrityCheck(false)
->join('images', 'images.oldFilename =
availablePictures.filename')
->where('images.ref IS NOT NULL');
$resultSet = $this->getDbTable()->fetchAll($select);
funciona como un encanto, pero si lo intento lo mismo con IS NULL en lugar de NOT NULL, me sale nada donde debería obtener un conjunto de resultados de varias filas, al igual que cuando lo intento directamente en MySQL con
SELECT *
FROM (
`availablePictures` AS a
LEFT JOIN `images` AS i ON a.filename = i.oldFilename
)
WHERE i.`ref` IS NULL
me da la impresión de Zend no le gusta mi es nulo o estoy haciendo algo mal?
Ha intentado Zend_Debug :: dump ($ select -> __ toString()); exit; para ver el sql que genera? Si copias pegando ese enunciado sql en mysql, ¿obtienes los resultados correctos? Si no, ¿qué es diferente de la versión de mecanografía manual? – PatrikAkerstrand
Gracias Máquina! Al hacerlo, descubrí que Zend estaba creando una unión interna en lugar de la combinación de la izquierda que necesitaba. Entonces, al usar -> joinLeft() mi problema fue resuelto. – Peter