Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: LAST ROW, GROUP BY, ORDER BY
Forum PHP.pl > Forum > Bazy danych > MySQL
Hosiek3210xD
Mam jeden malutki problem. Chce pobrać ostatni wpis z bazy który spełni połączenie grupowania.
Mój zapis niby działa ale nie do końca. Pobiera dobrze last id, lecz resztę danych bierze z pierwszego udanego połączenie group by. chciałbym pobrać dane z ostatniego.
Oto Mój zapis:
  1. SELECT MAX(id_nachricht) AS last, id_nachricht, id_anzeige, user_from, user_to, nachricht FROM `nachrichten` WHERE `user_from`='{$user}' OR `user_to`='{$user}' GROUP BY id_anzeige, user_from + user_to ORDER BY last DESC


Oto struktura:

  1. id_nachricht|id_anzeige|user_from|user_to|nachricht|time
  2. 29|87|7|1|test1|0000000
  3. 30|87|1|7|test2|0000000
  4. 31|87|7|1|test3|0000000
  5. 32|87|1|7|test4|0000000


Moje zapytanie zwraca mi ostatni wpis jako last 31, lecz reszta danych bierze z id 29. Jak do tego inaczej podejsc?
Hosiek3210xD
Cytat(trueblue @ 18.06.2022, 07:43:43 ) *

Szukałem lecz nie znalazłem podanych przez ciebie przykładów.
Dzięki bardzo, z tym przykładem udało mi się rozwiązać problem.
Efekt koncowy:
  1. SELECT nachrichten.* FROM `nachrichten`, (SELECT MAX(id_nachricht) AS last, id_anzeige, user_from, user_to FROM `nachrichten` WHERE `user_from`='{$user}' OR `user_to`='{$user}' GROUP BY id_anzeige, user_from + user_to) max_nachricht WHERE nachrichten.id_nachricht = max_nachricht.last ORDER BY max_nachricht.last DESC
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.