Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%)
|
Trochę ułatwię sprawę na potrzeby stwierdzenie "czego najlepiej użyć", mamy następujące tabele:
PAGE - id - idStatus - name - value STATUS - id - statusName Jak najlepiej pobrać całość w jednym zapytaniu? 1. Jojn w zapytaniu 2. Coś takiego - http://blog.wilgucki.pl/2010/11/zenddb-i-relacje.html tutaj wydaje mi się że jest to bardziej do relacji 1:n 3. Pod zapytanie Mam takie trzy możliwości, w każdej jest to do wykonania, ale nie wiem która z nich będzie najbardziej poprawna przy relacji 1:n wybrał bym #1 lub #2 w zależności od skomplikowania (z przewagą dla #2) a tutaj za skarby nie mogę się zdecydować, problem może nawet nie zendowski więc jak ukochani moderatorzy postanowią przenieść nie pogniewam się. (I nie ma tutaj sarkazmu :]) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%)
|
Ok, zdecydowałem się na połączenie jein'em, rozumiem że joinLeft() będzie najlepszym rozwiązaniem, mamy jeszcze join() i inne pochodne.
Mam tylko jeden problem, może ktoś zna obejście problemu. Kod modelu
W tabeli page i pageStatus mam pole o takiej samej nazwie "name" próbuję zmienić jego nazwę na "statusName" (w tabeli status) dostaję komunikat o błędzie: Message: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'name' in where clause is ambiguous Po zmianie nazwy pola na "nazwa2" wszystko działa jak powinno, jest opcja by zachować takie same nazwy pól i jakoś przy pobieraniu je zmienić? |
|
|
|
ShadowD [ZendFramework]Mysql i relacje 24.04.2012, 01:03:31
mortus Niestety pod względem wydajności najsłabiej wypadn... 24.04.2012, 08:58:22
Psajkus Masz w dwóch tabelach pole o takiej samej nazwie. ... 24.04.2012, 17:46:55
ShadowD Próbowałem błąd identyczny był. :-< 24.04.2012, 18:03:44
mortus Przed return-em wypisz zapytanie (w linii 11):[PHP... 24.04.2012, 19:33:23 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 12:25 |