Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: najpierw sortowanie, potem group by
Forum PHP.pl > Forum > Bazy danych > MySQL
psw779
W jaki sposób przesortować dane przed użyciem group by? Chodzi mi o to abym miał wpływ co zostanie wyciągnięte po użyciu group by - zależy mi o wierszu z najwyższym id...

Np.
  1. SELECT * FROM pictures GROUP BY ida


zwraca mi ładnie pogrupowane zdjęcia według albumów ale dla każdego albumu podaje zdjęcie z najniższym id a mnie zależy na najwyższym (ostatnio dodanym)

tylko proszę bez takich:

  1. SELECT * FROM pictures GROUP BY ida ORDER BY MAX(id)


gdyż nie działa - najpierw następuje grupowanie a dopiero potem sortowanie wyników sad.gif sad.gif
bełdzio
  1. SELECT * FROM pictures ORDER BY ida DESC LIMIT 1
piotrooo89
  1. SELECT * FROM pictures GROUP BY ida ORDER BY id DESC LIMIT 1


literówka. o to chodzi?
psw779
Nie zrozumiałeś problemu. Ja chcę mieć całą listę zdjęć pogrupowanych według ida (id albumu), przy założeniu, że dla każdego kolejnego ida będą dane o najnowszym zdjęciu.
AxZx
w takim przypadku trzeba skorzystać z podzapytania. inaczej tego się nie zrobić.
kefirek
  1. SELECT * FROM ( SELECT * FROM pictures ORDER BY id DESC ) AS tabela GROUP BY id
psw779
Cytat(kefirek @ 16.03.2009, 21:26:36 ) *
  1. SELECT * FROM ( SELECT * FROM pictures ORDER BY id DESC ) AS tabela GROUP BY id


działa ale jest bardzo mało wydaje... 5 sekund się wykonuje...
AxZx
Cytat(psw779 @ 16.03.2009, 21:43:57 ) *
działa ale jest bardzo mało wydaje... 5 sekund się wykonuje...


indeksy pozakładane? ile rekordów?
psw779
Rekordów około 100tys a na indeksach się nie znam sad.gif
artur_dziocha
google->indeksy->mysql
http://forum.php.pl/index.php?showtopic=87399
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.