Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][Propel] joiny i warunki
Forum PHP.pl > Forum > Gotowe rozwiązania > Skrypty obsługi baz danych
AxZx
witam

dlaczego propel dokleja warunek gdy chce zlaczyc inna tabele?

przyklad:
  1. <?php
  2. $c = new Criteria();
  3. $c->addJoin(ProfilPeer::IDWOJ, WojewodztwoPeer::IDWOJ, Criteria::LEFT_JOIN);
  4. $profils = ProfilPeer::doSelectJoinAll();
  5. ?>


zapytanie jakie generuje:
  1. LEFT JOIN wojewodztwo ON (profil.IDWOJ=wojewodztwo.IDWOJ) WHERE profil.IDWOJ=wojewodztwo.IDWOJ


dlaczego tak sie dzieje? to wiele spraw utrudnia.
jak temu zaradzic? jak tego lepiej uzywac?
phpion
Ten dodatkowy warunek jest zapewne wynikiem wywołania metody doSelectJoinAll(). Ona sama w sobie dołącza wszystkie powiązane rekordy. Albo więc zrezgynuj z własnego JOINa, albo po prostu użyj doSelect().
AxZx
okej, zrobilem wiec laczenie za pomoca $c->addJoin(), a wyniki pobieram za pomoca metody doSelect.
ale nie ma w zapytaniu po select zadnej kolumny z tabeli wojewodztwo.
doSelectAll powodowal to ze mialem te kolumny.
teraz jest wykonywane dodatkowe zapytanie ktore pobierane wojewodztwo o ID takim jak w profil.

co teraz?
(jak dla mnie ten propel jest chory)
phpion
Przecież ci napisałem: wywal JOINa:
  1. <?php
  2. $profils = ProfilPeer::doSelectJoinAll(new Criteria());
  3. ?>


Cytat(AxZx @ 17.08.2008, 22:22:21 ) *
(jak dla mnie ten propel jest chory)

Jak dla mnie też. Do tego cholernie niewydajny.
AxZx
napisales albo zrezygnuj z wlasnego joina albo z doselectjoinall.
smile.gif

czyli mam uzyc doselectJoinAll
no okej, ale tak jak pisalem jest w warunku profil.IDWOJ=wojewodztwo.IDWOJ
i pytalem czy da sie tego pozbyc bo mi troche to przeszkadza;)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.