magnat88
19.01.2015, 22:35:10
Mam następującą tabelę w bazie danych:
--id--punkty--rok--lista--
Jak napisać zapytanie, które wybierze mi niepowtarzające się rekordy (niepowtarzające pod względem id), ale w taki sposób, że dla danego id pozostawi (wyświetli) rekord o największej wartości pola rok.
Przykładowo mam:
--2--20--2013--Y
--2--25--2014--Z
--2--15--2012--Z
--3--10--2011--Z
--3--12--2012--S
jako wynik zapytania chciałbym uzyskać:
--2--25--2014--Z
--3--12--2012--S
tenloginjestzajety
19.01.2015, 22:46:42
$query = mysql_query("SELECT DISTINCT `id` FROM `tabela` WHERE `kolumna`")
magnat88
19.01.2015, 22:53:02
Chyba nie rozumiem albo nadal coś robię nie tak, bo jako wynik uzyskałem tylko listę id'ików (oczywiście bez duplikatów), ale nie wiem czy select wybrał mi tutaj akurat ten rekord o największym roku dla danego id
mmmmmmm
20.01.2015, 08:36:38
SELECT * FROM tabela WHERE (id, rok) IN (SELECT id, Max(rok) FROM tabela GROUP BY id)
magnat88
20.01.2015, 08:53:36
Wielkie dzięki, to jest dokładnie to o co mi chodziło
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.