Ich versuche, eine Verknüpfung auf 2 Tabellen in Zend, mit der DbTable/Modell/Mapper-Struktur. Wenn in meinem Mapper, ich dies tun:"IS NULL" in Zend_Db_Table select funktioniert nicht
$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);
es funktioniert wie ein Charme, aber wenn ich die gleiche Sache mit IS NULL anstelle von NOT NULL versuchen, ich habe nichts bekommen, wo ich eine Ergebnismenge erhalten soll mehrere Reihen, genau wie wenn ich es direkt in MySQL versuchen, mit
SELECT *
FROM (
`availablePictures` AS a
LEFT JOIN `images` AS i ON a.filename = i.oldFilename
)
WHERE i.`ref` IS NULL
ich den Eindruck bekommen Zend nicht meine IS NULL mag oder mache ich etwas falsch?
Haben Sie Zend_Debug :: dump versucht ($ select -> __ toString()); um den sql zu sehen, den er erzeugt? Wenn Sie die sql-Anweisung in mysql einfügen, erhalten Sie dann die richtigen Ergebnisse? Wenn nicht, was unterscheidet sich von der manuell getippten Version? – PatrikAkerstrand
Danke Maschine! Dabei entdeckte ich, dass Zend einen inneren Join anstelle des linken Joins, den ich brauchte, erstellte. Also, mit -> joinLeft() wurde mein Problem gelöst. – Peter