Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zmuszanie GROUP BY do zcalania w rekordow w okreslonym porzadku.
thornag
post
Post #1





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


Hej,

Zalozmy tabele -> table1

Kod
ID, CREATED
1 , 123
2 , 145
1 , 207
1 , 308
2 , 409


Zadanie jest takie zeby wybrac najnowsze rekordy po jednym dla kazdego ID.

Mozna to zrealizowac nastepujacym zapytaniem

  1. SELECT * FROM table1 WHERE created IN (
  2. SELECT MAX(created) FROM table1 GROUP BY id
  3. )


To zadziala i zwroci prawidlowo. Mnie chodzi natomista o mozliwosc zalatwienia tego bez podzapytania.

Probowalem na zasadzie

  1. SELECT MAX(created) AS maxx, * FROM table1 GROUP BY id HAVING created = maxx


To nie zwraca rekordow.

Zrobienie po prostu
  1. SELECT * FROM table1 GROUP BY id
  2. ORDER BY created DESC


Powoduje ze rekordy scalane sa albo losowo (tego nie jestem pewien) albo dostaje rekord najstarszy a chodzi mi o najnowszy.

Macie jakies pmysly zeby sie pozbyc tego podzapytania ?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:00