Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sortowanie watkow na forum kontrachronologicznie wzgledem postow
phoenix84
post
Post #1





Grupa: Zarejestrowani
Postów: 218
Pomógł: 0
Dołączył: 14.04.2004
Skąd: Słupsk, Nowy Sącz

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


Witam,

Problem mam taki, ze przy trudniejszych zapytaniach na kilku tabelach sie juz gubie... (IMG:style_emoticons/default/winksmiley.jpg)

tak wiec:

mam tabele 'watki' i tabele 'posty'... w tabeli posty jest kolumna 'czas' oraz kolumna 'id_posty'...


no i chcialbym uzyskac liste watkow, ale w kolejnosci jak na forach czyli kontrachronologicznie... problem polega na tym, ze czasy sa w tabeli postow... i nalezy stamtad dla kazdego watku wybrac najnowszy i dopiero te porownac...

wymyslilem (nie wiem na ile udolnie) cos takiego, ale nie wiem co wstawic na koncu... chyba ze calosc w ogole jest zle...

SELECT `tytul`, `czas` FROM `watki` LEFT OUTER JOIN `posty` ON `posty`.`id_watki`=`watki`.`id` WHERE `czas`=MAX

dzieki za ewentualne wskazowki... moze powinienem tu dzies uzyc group by?

pozdrawiam,

k.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




I wlasnie dlatego dla tabeli tematu dodaje się takie pole jak OSTATNI_POST. Pole to wskazuje na ostatni post w temacie. Dzięki temu nie masz zadnego problemu z sortowaniem i działa to szybko.
Go to the top of the page
+Quote Post
thek
post
Post #3





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




Jeśli masz tylko połączenie na linii temat-post i brak kolumny "ostatni post tematu" to najprostszym rozwiązaniem jest wybierać post o najwyższym id powiązany z określonym wątkiem. Domyślam się, że id tematu i id posta to pola autoincrement. Nieważna jest więc w nich tak naprawdę data(!). Nowszy post i tak ma wyższe id od poprzednika w temacie. Wybieraj więc zawsze ten o najwyższym id z danego wątku. Zaznaczam jednak, że optymalniejsze jest dorzucenie owej jednej kolumny niż co chwile robić grupowanie, joiny i kombinować.
Go to the top of the page
+Quote Post
zelu
post
Post #4





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


i robić update triggerem?
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
i robić update triggerem?
Tak, jednak wiekszość hostingów nie pozwala na zakładanie własnych trigerów. Pozostaję wówczas więc update tego pola normlanie przez zapytanie w php. I tak to będzie szybsze niż ciągłe wyliczanie tego przy wyswietlaniu listy.
Go to the top of the page
+Quote Post
phoenix84
post
Post #6





Grupa: Zarejestrowani
Postów: 218
Pomógł: 0
Dołączył: 14.04.2004
Skąd: Słupsk, Nowy Sącz

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


macie racje z ta kolumna, tak zrobie... dzieki

k.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 19:09