Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] GROUP BY i sortowanie desc
Patman
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 1
Dołączył: 16.06.2009

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


Potrzebuję pomocy w zbudowaniu zapytania.
Tabela posiada wpisy z forum. Posiada kolumny id, autor, temat (do którego wątku należy wpis), tekst, date. Chcę wyświetlić tabelę z wszystkimi tematami, a obok nazwy tematu ma być ostatni wpis w danym temacie (wraz z autorem i datą). Czyli taka informacja: [TEMAT] ostatni wpis [skrócony tekst] przez [autor] dnia [data + godzina]
Mam coś takiego:
  1. SELECT id, tekst, temat, date, autor FROM wpisy GROUP BY temat ORDER BY date DESC

Powstaje mi lista tematów, ale z pierwszym wpisem w danym temacie, a chciałbym ten z ostatnią datą.
Co dopisać do ORDER BY, aby wybrał to co potrzebuję?
U mnie skrypt jest nieco bardziej rozbudowany, bo korzystam z kilku tabel.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Problemem tutaj jest to, że GROUP BY wykonuje się przed ORDER BY. Przez to GROUP BY wypluwa na łączeniu temat o najniższym id napotkanym. Da się to zrobić na kilka sposobów. Najprostsze to - pchnąć sortowanie tabeli malejąco DESC do podzapytania i to je grupować lub próbować operować funkcją max.
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: 13.10.2025 - 21:00