Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niewidoczna kolumna w Mysql 5.1
Forum PHP.pl > Forum > Bazy danych > MySQL
pitbull82
Witam

Na Mysql 5.0 zapytanie:

  1. SELECT * , DATEDIFF( ampay_date_end, NOW( ) ) AS `day_dif`
  2. FROM am_payments p
  3. WHERE ampay_acc_id NOT
  4. IN (
  5.  
  6. SELECT amt_acc_id
  7. FROM _am_tasks
  8. WHERE amt_type = 'mail'
  9. AND amt_added >= DATE_SUB( ampay_date_end, INTERVAL `day_dif`
  10. DAY )
  11. )


działa mi bez problemu, za to na mysql 5.1 już nie przechodzi - nie widzi kolumny day_dif w podzapytaniu. Najprostsze rozwiązanie to zamiana w podzapytaniu `day_dif` na DATEDIFF( ampay_date_end, NOW( ) ) i wtedy działa bez problemu, ale jak sądzę Mysql ma wtedy więcej pracy + dodatkowo może się teoretycznie zdarzyć że w podzapytaniu i w zapytaniu głównym, wartość DATEDIFF( ampay_date_end, NOW( ) ) będzie różna. Czy jest jakieś rozwiązanie tego problemu czy może w mysql 5.1 po prostu tak trzeba zrobić?

Pozdrawiam
nospor
1) `nazwa` mówi, że odwołujesz się do kolumny a nie do aliasu. Powinno być samo nazwa
2) day_diff określasz w select, zaś podzapytanie jest w WHERE. Kolejność jest taka: najpierw WHERE potem select, stąd raczej normalne jest, że WHERE ma głęboko gdzieś rzeczy z SELECT smile.gif
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.