![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
musze naprawic listowanie kategorii na forum wraz z ostatnim tematem i ostatnim postem w nim
struktura tabel (kluczy do relacji) jest następująca: categories: id topics: id, category_id, created int(6) - zapisywany unixtimestamp posts: id, topic_id, `date` int (9) - tez unixtimestamp musze pobrac: liste kategorii wraz z ostatnią odpowiedzią w temacie (pobrać tu musze też nazwe tematu, autora tematu, autora ostatniej odpowiedzi) potrzebuje to zrobic jak najwydajniej najlepiej jednym zaytaniem z joinami albo subselectami, prosze o porady bo juz sie mecze z tym 3 dni |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Najlepiej jakbys poprawil strukture i w tabeli kategorii dodal ID ostatniego tematu
a w tabeli tematu dodal ID ostatniego posta. Wowczas wszystko zrobisz i wydajnie i bez problemu |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
no moglbym tylko teraz zabawa z triggerami bedzie ładna, a przy obecnej strukturze? jakieś wskazówki?
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ale to bedzie najoptymalniejsze.
trigger albo w php |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
triggery chyba odpadają w tej sytuacji bo dojdzie do rekurencji, kiedy przy AFTER UPDATE posts wykonam zapytanie update do post
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Po update post masz robic update topic
po update topic masz robic update category ps: widze ze nie masz tabeli tematow (topic)....... no wlasnie.... przydalaby sie (IMG:style_emoticons/default/wink.gif) ALbo czysty php, gdzie w php robisz update na tabelach w zaleznosci od akcji |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
tak tylko co jesli chce kompleksowo wszystkie zaktyalizowac a nie tylko jeden?
poradzilem sobie na razie, że do innej tabeli przypisalem triggera |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat tak tylko co jesli chce kompleksowo wszystkie zaktyalizowac a nie tylko jeden? Przyklad dla topic - post update topic t set ID_LAST_POST = (select ID from post where ID_TOPIC=t.ID order by CDATE desc limit 1); |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
o triggery mam póki co załatwione teraz czeka mnie koszmar z przepisywaniem zapytania i struktury:
całość opiera się na newsach i komentarzach (jako forum) tutaj pobierane są kategorie wraz z subkategoriami i tematami i pozostalymi danymi macie jakieś pomysły jak to przerobić? potem jest to dziwnie parsowane na tablicach w php |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Kolejny, który do GROUP BY * używa...
Może napisać manuala pt. "Jak NIE grupować w MySQL-u?" |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
po pierwsze to nie ja pisałem a skoro jesteś takim mądralą to zabłyśnij i napisz jak powinno wygladac to zapytanie
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
1. TY jesteś autorem tego posta. Nawet jeśli skądś to wkleiłeś, to nie napisałeś ską - nie mogłem wiedzieć że nie ty jesteś autorem.
2. Mógłbym napisać - dla mnie to nie problem. (popatrz sobie na inne moje posty na tym forum). Ale musiałbym wiedzieć, co to ma robić. Analizując samego SQL mogę się domyśleć, co to robi, ale nie co MA robić. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 01:28 |