Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pytanie do zapytania
quizer
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 20.06.2010

Ostrzeżenie: (0%)
-----


Witam, mam następujące zapytanie:

  1. SELECT artykuly.id, artykuly.tytul, artykuly.krotki, artykuly.DATA, artykuly.img, uzytkownicy.nick, kategorie.opis FROM artykuly INNER JOIN uzytkownicy ON artykuly.uzytkownik = uzytkownicy.id INNER JOIN kategorie ON artykuly.typ = kategorie.id INNER JOIN komentarze ON artykuly.id = komentarze.artykul ORDER BY DATA DESC LIMIT 0, 10


Chciałbym dodać do tabeli wyjściowej jeszcze jedną kolumnę w której będą policzone komentarze dla danego artykułu (count(komentarze.id)). Nie bardzo wiem jak się za to zabrać by dla każdego artykułu był podliczone tylko jego komentarze. Dla pojedyńczego artykułu takie zapytanie wyglądałoby tak:

  1. SELECT count(komentarze.id), artykuly.id, artykuly.tytul, artykuly.krotki, artykuly.DATA, artykuly.img, uzytkownicy.nick, kategorie.opis FROM artykuly INNER JOIN uzytkownicy ON artykuly.uzytkownik = uzytkownicy.id INNER JOIN kategorie ON artykuly.typ = kategorie.id INNER JOIN komentarze ON artykuly.id = komentarze.artykul WHERE komentarze.artykul = 3 ORDER BY DATA DESC LIMIT 0, 10


Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Najprawdopodobniej najlepszym rozwiązaniem będzie tutaj hybryda, tj. dodatkowa tabela z głosami (jako podstawa) plus kolumna "ocena" w ocenianym elemencie. Po dodaniu głosu dodajesz nowy rekord do tabeli na głosy (id użytkownika, id ocenianego elementu, data dodania, ip, ocena i co tam jeszcze potrzebujesz) oraz uaktualniasz średnią ocen (czy tam średnią i ilość głosów).

Po co więc dodatkowa tabela, z której się praktycznie nie korzysta? Bo zawiera ona szczegółowe dane przydatne przy generowaniu statystyk, sprawdzaniu czy dany użytkownik już głosował itp. itd.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 02:17