Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie watkow na forum kontrachronologicznie wzgledem postow
Forum PHP.pl > Forum > Bazy danych > MySQL
phoenix84
Witam,

Problem mam taki, ze przy trudniejszych zapytaniach na kilku tabelach sie juz gubie... 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.
nospor
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.
thek
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ć.
zelu
i robić update triggerem?
nospor
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.
phoenix84
macie racje z ta kolumna, tak zrobie... dzieki

k.
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.