Lid |
|
hello,
Ik ben aan het werken aan een applicatie die stambomen bijhoudt en aan de hand van de modellen een bepaalde uitvoer kan generen, maar... ik krijg de join niet aan de praat...
Ik heb 2 tabellen.
People bevat id, naam, voornaam, bijnaam, geboortedatum, plaats, sterftedatum, plaats, opmerkingen en geslacht.
Marriages bevat een id, person1_id, person2_id en de datum en plaats van het huwelijk.
Nu wil ik alle huwelijken ophalen, maar de ID's en data alleen heb ik niet veel aan, daarom join ik deze met people met deze query.
$marriages = new Marriages();
$select = $marriages->select()
->from(array('m' => 'marriages'))
->joinInner(array('p1' => 'people'), 'm.person1 = p1.id')
->joinInner(array('p2' => 'people'), 'm.person2 = p2.id')
->order('yearOfMarriage ASC');
$marriages = new Marriages(); $select = $marriages->select() ->from(array('m' => 'marriages')) ->joinInner(array('p1' => 'people'), 'm.person1 = p1.id') ->joinInner(array('p2' => 'people'), 'm.person2 = p2.id') ->order('yearOfMarriage ASC');
Zend geeft me echter altijd de freaking error:
Warning: Select query cannot join with another table in C:\xampp\htdocs\Frameworks\Zend\QuickStart\library\Zend\Db\Table\Select.php on line 191
Nochtans, als ik die Query invoer in MySQL (phpMyAdmin), zijnde
SELECT *
FROM `marriages` AS m
INNER JOIN people AS p1 ON m.person1 = p1.id
INNER JOIN people AS p2 ON m.person2 = p2.id
ORDER BY yearOfMarriage ASC;
SELECT * FROM `marriages` AS m INNER JOIN people AS p1 ON m.person1 = p1.id INNER JOIN people AS p2 ON m.person2 = p2.id ORDER BY yearOfMarriage ASC;
werkt dit zoals het hoort.
Kan er iemand mijn fout opspeuren. En bestaat er een manier om de gegenereerde SQL van Zend_Select te bekijken? want die krijg ik niet opgevraagd met __toString(), als het dat al is...
Dank!
MiST
|