Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: invalid reference to FROM-clause entry for table
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
skowron-line
Witam
przy wykonaniu zapytania
  1. SELECT consols.inv_number, bars.name, consols.inv_number, SUM(payments.value_pln) value_pln
  2. FROM payments, consols, payment_types
  3. LEFT JOIN localizations ON (localizations.consols_id = consols.id)
  4. LEFT JOIN bars ON (bars.id_bars = localizations.bars_id)
  5.  
  6. WHERE payments.consol_id = consols.id
  7. AND payment_types.id = payments.payment_type_id
  8.  
  9. GROUP BY consols.id, consols.inv_number, bars.name

dostaje
Kod
ERROR:  invalid reference to FROM-clause entry for table "consols"
LINE 3: ...JOIN localizations ON (localizations.consols_id = consols.id...

a jak przeniose do JOIN tą tabele

  1. SELECT consols.inv_number, bars.name, consols.inv_number, SUM(payments.value_pln) value_pln
  2. FROM payments, consols
  3. LEFT JOIN localizations ON (localizations.consols_id = consols.id)
  4. LEFT JOIN bars ON (bars.id_bars = localizations.bars_id)
  5. LEFT JOIN payment_types ON (payment_types.id = payments.payment_type_id)
  6.  
  7. WHERE payments.consol_id = consols.id
  8. GROUP BY consols.id, consols.inv_number, bars.name

to dostaje
Kod
ERROR:  invalid reference to FROM-clause entry for table "payments"
LINE 5: LEFT JOIN payment_types ON (payment_types.id = payments.paym...


może mi ktoś wytłumaczyć co robię źle questionmark.gif
luckyps
Na moj gust (moge sie myslic) to musisz calkowicie pojsc w joiny albo wymieniac tablice po przecinku i laczyc je w WHERE...
skowron-line
Cytat(luckyps @ 1.12.2011, 15:11:39 ) *
Na moj gust (moge sie myslic) to musisz calkowicie pojsc w joiny albo wymieniac tablice po przecinku i laczyc je w WHERE...


Przyłączyłem wszystkie tabele w JOIN -ach i działa z tym że
  1. SELECT consols.inv_number, bars.name, consols.inv_number, SUM(payments.value_pln) value_pln
  2. FROM payments, consols
  3. LEFT JOIN localizations ON (localizations.consols_id = consols.id)
  4. LEFT JOIN bars ON (bars.id_bars = localizations.bars_id)
  5.  
  6. WHERE payments.consol_id = consols.id
  7. GROUP BY consols.id, consols.inv_number, bars.name

tez działa. I teraz rodzi się pytanie czy istnieje jakieś ograniczenie co do ilości i jakości złączeńquestionmark.gif
luckyps
Cytat(skowron-line @ 1.12.2011, 15:16:20 ) *
... czy istnieje jakieś ograniczenie co do ilości i jakości złączeńquestionmark.gif

Hmmm... ja nie znam na to pytanie odpowiedzi. Moze w dokumentacji cos wiecej pisze na ten temat.

Znalazlem tylko cos takiego.
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.