tuxxx
18.11.2009, 07:37:10
Mam tabele :
użytkowników,
komentarzy,
newsów
Chciałbym na stronie głównej wyświetlić 10 najnowszych wpisów (to umiem zrobić), + obok tytułu podać liczbę komentarzy dla każdego newsa...Jak to zrobić, ponieważ jedyny sposób jaki znam to wziąć w pętle zapytanie i tak generować count-a, ale to nie jest optymalne, jak to zrobić za pomocą jednego zapytania ?
Crozin
18.11.2009, 07:43:42
Nie rób tego na zasadzie każdorazowego zliczania ilości komentarzy, bo to niepotrzebne obciążenie dla bazy danych. Mógłbyś to zrobić korzystając z COUNT() i GROUP BY, ale lepiej jest do tabeli newsów dodać kolumnę ilość_komentarzy i zwiększać ją o jeden przy dodaniu komentarza i analogicznie przy usunięciu takiego.
thek
18.11.2009, 08:51:14
To mniej więcej szablon. Dopisz sobie lub zmień co trzeba...
SELECT n.*, count(k.id) AS ilosc FROM news n LEFT JOIN komentarze k ON n.id = k.id_artykulu GROUP BY n.id ORDER BY n.id DESC LIMIT 10