Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z zapytaniem zagnieżdzonym
Forum PHP.pl > Forum > Bazy danych > MySQL
sokot
Witam wszystkich,

Mam problem z zapytaniem sqlowym pisanym w phpie, mianowicie wygląda ono tak

  1. <?php
  2. $servis_q = "select sc.id,
  3.                         sc.customer_firstname,
  4.                         sc.customer_lastname,
  5.                                             sh.modifier
  6.    
  7.                     from " . TABLE_SERVICES_CALENDAR . " sc,
  8.  
  9.                         " . TABLE_SERVICES_HISTORY . " sh,
  10.  
  11.                     WHERE sc.id = sh.service_id
  12.                            AND sh.status = '1'
  13.                            AND sh.service_status = ss.id
  14.                         AND sh.modifier IN (select subsh.modifier
  15.                                                 from " . TABLE_SERVICES_HISTORY . " subsh
  16.                                                  WHERE sc.id = subsh.service_id
  17.                                             SORT DESC subsh.date_modify LIMIT 1)
  18.                 ORDER BY sc.id DESC";
  19. ?>


Mianowicie zapytanie działa ale gdy omijam kod z zapytaniem zagnieżdzonym, nie wiem jak wymusić wyciąganie rekordu ale z najstarsza datą jego wprowadzenia linia "SORT DESC sh.date_modify LIMIT 1" to mi niestety niedziała i nie wiem jak to ugryźć.
Z góry dzięki za pomoc
bełdzio
zerknij na funkcje MAX( ) => http://dev.mysql.com/doc/refman/4.1/en/gro...ml#function_max
JoShiMa
a dlaczego w podzapytaniu, gdzie tabela ma alias 'subsh' sortujesz po 'sh.date_modify'? Nie powinienes sortowac po 'subsh.date_modify' ? Aha. Zauważyłam, że dobrym zwyczajem jest uzywanie AS, kiedy się robi aliasy do tabel, czasem bez tego AS nie chciało mi działać.

  1. ... FROM " . TABLE_SERVICES_CALENDAR . " AS sc ...
sokot
Oczywiście masz racje moja pomyłka ale jedynie w pisaniu posta bo i w kodzie mam poprawnie juz zmieniam.

Trochę zmieniłem problematyczną linie na: "ORDER BY subsh.date_modify LIMIT 1" to dostałem taki oto komunikat:

1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Rozumiem jesgo treść tylko jak mogę zatem wykonać to sortowanie z podzapytania, jeśli pomijam LIMIT 1 nie ma błędu ale wyciąga mi rekord pierwszy jaki wpadnie sciana.gif sciana.gif sciana.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.