Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wybieranie rekordów z ich posortowaniem
Mion
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


Jest tabela:
  1. SELECT Z.`id_komentarza`, Z.`id_zdjecia`, Z.`tresc_komentarza`, Z.`data` FROM ZdjeciaKomentarze Z;
Przechowująca komentarze zdjęć usera [ich jest dosyć dużo 259809]

Oraz druga przechowująca zdjecia usera
  1. SELECT U.`idz`, U.`id_usera`, U.`plik_zdjecia` FROM UserZdjecia U;


Problem jest taki by ułożyć zapytanie wybierające ostatnie 20 komentarzy jakie zostawili userzy do jego wszystkich zdjęć (nie jednego zdjęcia) danego usera np o U.`id_usera` = 422

Mam dzisiaj jakieś zaćmienie dlatego zwracam się o pomoc w tym zapytaniu.

Ten post edytował Mion 22.11.2010, 14:43:08
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




To trzeba było tak pisać od razu, że mają się pojawić ostatnie wpisy dla X zdjęć. To co opisałeś jako problem mój opis rozwiązuje prawidłowo. Problemem jest to, czego nie napisałeś na starcie, a mianowicie, że ma być po jednym, ostatnim komentarzu dla X zdjęć. Krecią robotę robi Ci grupowanie. Niestety bierze ono zawsze pierwszy napotkany wynik, a Ty chcesz ostatni. Musisz więc wszystko odwrócić zanim dojdzie do grupowania. Można to zrobić na kilka sposobów, ale niestety nie obejdzie się bez podzapytania. Najprostsze rozwiązanie to tabelę komentarzy "odwrócić", a więc do zapytania JOIN posłać ją z ORDER BY id zdjęcia ustawionym na DESC. Wtedy pierwszymi napotkanymi id po grupowaniu będą te najwyższe. Nie jest to rozwiązanie idealne, ale myślę, że wystarczy Ci.
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: 2.10.2025 - 22:35