Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: element z danej kategorii o najwyższym id
Forum PHP.pl > Forum > Bazy danych > MySQL
radziopoke
Mam taką tabelę (przykładowa tabela danych mysql):

ID, kategoria, name
1, 1, nazwaA
2, 3, nazwaB
3, 2, nazwaC
4, 2, nazwaD
5, 1, nazwaE
6, 2, nazwaF
7, 1, nazwaG
8, 3, nazwaH
9, 1, nazwaI

chodzi o to, że muszę wyciągnąć tylko po jednym wierszu z każdej kategorii,ale chodzi o te które mają naważywszy id z danej kategorii.
czyli w tym wypadku powinno wyciągnąć tylko te wiersze:

6, 2, nazwaF
8, 3, nazwaH
9, 1, nazwaI

jak to osiągnąć?
mortus
  1. SELECT * FROM `tabela` WHERE `id` IN (SELECT MAX(`id`) FROM `tabela` GROUP BY `kategoria`)

albo
  1. SELECT * FROM (SELECT * FROM `tabela` ORDER BY `id` DESC) `temporary` GROUP BY `kategoria`)
thek
Najprościej? Wpierw posortuj całą tabelę malejąco. Tak spreparowaną użyj jako FROM i pogrupuj po name.
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.