Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Unikalne rekordy i sortowanie
Forum PHP.pl > Forum > Bazy danych > MySQL
cichy380
Witam
moja tabela w bazie danych wygląda mniej więcej tak jak ta poniżej

Kod
id  |     data     |  wartosc
-------------------------------
  1  |  2009-05-01  |    3,5
  1  |  2009-05-06  |    3,6
  2  |  2009-05-01  |    4,2


potrzebuję wyciągnąć tylko najbardziej aktualne (najpóźniejsza data) wartości dla danego elementu (id), czyli oczekuję rezultatu:

Kod
1  2009-05-06  3,6
2  2009-05-01  4,2


jednak mam problem z zapytaniem SELECT w którym powinny wystąpić GROUP BY (lub DISTINCT) i ORDER BY

próbowałem:
  1. SELECT id, DATA, wartosc FROM nazwatabeli GROUP BY id ORDER BY DATA DESC


jednak uzyskuje wynik

Kod
1  2009-05-01  3,5
2  2009-05-01  4,2
kimj9174
JAk dla mnie sortowanie wg 2009-10-01 to trche dziwne.
JA bym wsadzil jeszcze pole z wartosciami mktime i podczas dodoawanaia doi bazy zeby to pole wypelniane bylo mktime();
Zamieniasz wartosc mktime na data do wyswietlenia.
A pozniej sortujesz wg tego mktime.
phpion
Tak powinno zadziałać jak chcesz:
  1. SELECT t.* FROM (SELECT id, DATA, wartosc FROM nazwatabeli ORDER BY id DESC, DATA DESC) t GROUP BY t.id
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.