Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: LEFT JOIN i "nieistniejąca" kolumna
Forum PHP.pl > Forum > Bazy danych > MySQL
kilas88
Witam. Wykonuję poniższe polecenie SQL:

  1.  SELECT
  2.  
  3.  
  4.   text.text_id,
  5.   text.text_title,
  6.   text.text_link,
  7.    
  8.   IF (autor.NAME_PREFIX='' OR autor.NAME_PREFIX IS NULL, TRIM(CONCAT(autor.NAME_FIRST, ' ', autor.NAME_LAST)), autor.NAME_PREFIX) AS author_name,
  9.    
  10.   tag.CAT_ID AS category_id
  11.    
  12.  FROM   love_text text,
  13.   love_tags tag
  14.    
  15.  LEFT JOIN   love_authors AS autor
  16.   ON autor.ID = text.text_author
  17.    
  18.  WHERE   tag.TAG_URL = 'forever'
  19.   AND tag.ID_PAGE = text.text_id
  20.   AND text.text_status = 1
  21.  
  22.  GROUP BY
  23.   text_id,
  24.   category_id
  25.  
  26.  ORDER BY   category_id,
  27.   author_name,
  28.   text_title


Polecenie jak najbardziej działa na lokalnym serwerze. Jeśli jednakwrzucę na serwer w lh.pl to dostaję błąd: #1054 - Unknown column 'tekst.text_author' in 'on clause'. Oczywiście taka kolumna istnieje w danej tabeli, nie rozumiem więc skąd taki błąd.

Proszę o pomoc.
nospor
  1. SELECT
  2.  
  3.  
  4. text.text_id,
  5. text.text_title,
  6. text.text_link,
  7.  
  8. IF (autor.NAME_PREFIX='' OR autor.NAME_PREFIX IS NULL, TRIM(CONCAT(autor.NAME_FIRST, ' ', autor.NAME_LAST)), autor.NAME_PREFIX) AS author_name,
  9.  
  10. tag.CAT_ID AS category_id
  11.  
  12. FROM (love_text text,
  13. love_tags tag)
  14.  
  15. LEFT JOIN love_authors AS autor ON autor.ID = text.text_author
  16.  
  17. WHERE tag.TAG_URL = 'forever' AND tag.ID_PAGE = text.text_id AND text.text_status = 1
  18.  
  19. GROUP BY
  20. text_id,
  21. category_id
  22.  
  23. ORDER BY category_id,
  24. author_name,
  25. text_title

a teraz?
kilas88
Dziękuję bardzo nospor. Nie sądziłem, że brak jednego nawiasu może spowodować błąd, dziwna sprawa jak na moje smile.gif myślałem, że one tylko ładnie porządkują / grupują.
nospor
w mysql 5 zrobili "bajer" ze left join dotyczy ostatniego from. a ze ty do left join pobierales kolumne z pierwszego from to poprostu nie byla ona widziana. Myk z objęciem wszystkiego w nawiast powoduje, ze left join dotyczy jakby calego from.
kilas88
Uczyłem się z książki z 2000, więc musiałbym kiedyś uaktualnić wiedzę winksmiley.jpg Dziękuję.
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-2025 Invision Power Services, Inc.