Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 4 zapytania w jednym
Forum PHP.pl > Forum > Bazy danych > MySQL
Aku
Mam nastepujace tabele:

forum_fora (idforum, nazwa, opis, status)

forum_tematy (idtemat, idforum, iduser, temat, tresc, datadodania, .....)

forum_posty (idpost, idtemat, idforum, iduser, tresc, ....)

Pytanie jest nastepujace: czy da się stworzyc w jednym zapytaniu mySQL tak aby wyswietliło:

forum_fora.*, liczba_tematow_forum, liczba_postów_forum, ostatni_temat_forum(temat, nick, datadodania)

Ja próbowałem robiąc cos takiego:

CODE
SELECT ff.*, COUNT(ft.temat) as licz_tem,
COUNT(fp.tresc) as licz_odp, ft.temat, ft.datadodania, fu.nick FROM forum_fora ff
LEFT JOIN forum_tematy ft ON ft.idforum=ff.idforum
LEFT JOIN forum_posty fp ON fp.idforum=ff.idforum
LEFT JOIN forum_uzytkownicy fu ON ft.iduser=fu.iduser
GROUP BY ff.idforum


Ale to nie działa, poniewaz sumuje mi COUNT z kazdej tabeli, i nie wiem jak zrobic aby to wyswietlalo ostatni temat zamiast pierwszego

Jesli ktoś zna rozwiazanie, lub jesli to nie mozliwe to jak przerobic baze aby to zrobić.
Będę bardzo wdzięczny za jakiekolwiek wskazówki.
nevt
  1. SELECT forum_fora.*, (SELECT COUNT(*) FROM fora_tematy) AS tematy_ilosc, (SELECT COUNT(*) FROM fora_posty) AS posty_ilosc, forum_tematy.temat, forum.tematy.nick, forum_tematy.datadodania FROM forum_fora LEFT JOIN forum_tematy USING (idforum) GROUP BY idforum;

tak to mniej więcej powinno wyglądać, pisałem z pamięci, więc mogą być jakieś drobne literówki, powodzenia.

EDIT: jeżeli chcesz zliczyć tematy i posty osobno dla każdego forum, to powinno pomóc coś takiego:
  1. SELECT forum_fora.*, COUNT(idtemat) AS tematy_ilosc, COUNT(id_post) AS posty_ilosc, forum_tematy.temat, forum.tematy.nick, forum_tematy.datadodania FROM forum_fora LEFT JOIN forum_tematy USING (idforum) LEFT JOIN forum_posty USING (idforum) GROUP BY idforum;
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-2024 Invision Power Services, Inc.