login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[ZF] Inner Joins in Zend (Opgelost)

Offline MiST - 15/09/2008 17:21
Avatar van MiSTLid 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.

  1. $marriages = new Marriages();
  2.  
  3. $select = $marriages->select()
  4. ->from(array('m' => 'marriages'))
  5. ->joinInner(array('p1' => 'people'), 'm.person1 = p1.id')
  6. ->joinInner(array('p2' => 'people'), 'm.person2 = p2.id')
  7. ->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
  1. SELECT *
  2. FROM `marriages` AS m
  3. INNER JOIN people AS p1 ON m.person1 = p1.id
  4. INNER JOIN people AS p2 ON m.person2 = p2.id
  5. 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

2 antwoorden

Gesponsorde links
Offline shibble - 15/09/2008 17:38
Avatar van shibble MySQL interesse als ik het goed heb zo heb ik het hier bij mij wel opgelost, moet je
  1. ->setIntegrityCheck(false)

Toevoegen aan je query dus word dat het volgende:
  1. $select = $marriages->select()
  2. ->setIntegrityCheck(false)
  3. ->from(array('m' => 'marriages'))
  4. ->joinInner(array('p1' => 'people'), 'm.person1 = p1.id')
  5. ->joinInner(array('p2' => 'people'), 'm.person2 = p2.id')
  6. ->order('yearOfMarriage ASC');
Offline MiST - 15/09/2008 17:42 (laatste wijziging 15/09/2008 17:43)
Avatar van MiST Lid testing...

WORKS!

Erg bedankt voor het snelle antwoord!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.306s