![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
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.
|
|
|
![]()
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ć.
|
|
|
![]()
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?
|
|
|
![]()
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.
|
|
|
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:09 |