Zalozmy tabele -> table1
Kod
ID, CREATED
1 , 123
2 , 145
1 , 207
1 , 308
2 , 409
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
SELECT * FROM table1 WHERE created IN ( SELECT MAX(created) FROM table1 GROUP BY id )
To zadziala i zwroci prawidlowo. Mnie chodzi natomista o mozliwosc zalatwienia tego bez podzapytania.
Probowalem na zasadzie
SELECT MAX(created) AS maxx, * FROM table1 GROUP BY id HAVING created = maxx
To nie zwraca rekordow.
Zrobienie po prostu
SELECT * FROM table1 GROUP BY id 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 ?