![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 119 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Grajewo Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Skonstruowałem zapytanie wyświetlające wszystkie tematy danego forum (id, temat, id autora, nazwę autora, liczbę postów, datę osatniej modyfikacji):
Chciałbym do tego dodać dane ostatniego postu [p.id] (tego z MAX(p.time)) i dane jego autora [p.user_id][u.name], ale pogubiłem się. Wydaje mi się, że z WHERE odpadnie u.id = p.user_id, ale co dalej? Da się wydobyć te dane razem z tym zapytaniem? Jeśli tak, to będę wdzięczny za wskazówki. Ten post edytował onlyX 3.10.2009, 15:32:07 |
|
|
![]() |
![]()
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 ![]() |
Erix sugeruje Ci dobre rozwiązanie problemu. Dla tabeli forum lub temat przechowuj id ostatniego posta. Oszczędzi to bazie wiele łączenia i zajeżdżania jej. Tak wiele skryptów for internetowych rozwiązuje ten problem. Jedynie fusion, jak na złość trzymie tam timestamp zamiast id (o czym zresztą we wcześniejszym poście wspomniałem). Dzięki polu z najnowszym id dla danego forum, zmniejszasz ilość łączeń LEFT JOIN do uzyskania oczekiwanego przez Ciebie rezultatu. Używanie GROUP BY, JOIN i każdego innego słowa kluczowego SQL z czasem staje się naturalne i po kilku, kilkunastu wykorzystaniach nawet zawiłe konstrukcje będziesz sam pisał i się dziwił jak można tego nie rozumieć. Praktyka czyni cuda (IMG:style_emoticons/default/winksmiley.jpg)
Ten post edytował thek 10.10.2009, 20:38:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 12:36 |