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
quizer
post
Post #2





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

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


Cytat(Crozin @ 26.06.2010, 22:15:49 ) *
Zliczanie każdorazowo ilości komentarzy to zły pomysł. Rozwiązuje się to poprzez dodatkową kolumnę "ilość komentarzy" w tabeli, której rekordy są komentowane (tutaj: artykuły). Dzięki temu nie musisz katować bazy bazy niepotrzebnym podzapytaniem, które może w znaczący sposób obciążyć bazę.

Inkrementacja/dekrementacja wartości "ilość komentarzy" przy dodawania/usuwaniu komentarza jest jest jakimś problemem.


Dzięki za podpowiedź. Postaram się zastosować. Czyli wtedy przy dodawaniu/usuwaniu komentarza trzeba wysłać dwa zapytania do bazy - nowy rekord dla komentarzy i edycja rekordu dla artykułów? I dlaczego inkrementacja/dekrementacja stanowi problem?
Go to the top of the page
+Quote Post
Mchl
post
Post #3





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Cytat(quizer @ 28.06.2010, 11:06:10 ) *
Dzięki za podpowiedź. Postaram się zastosować. Czyli wtedy przy dodawaniu/usuwaniu komentarza trzeba wysłać dwa zapytania do bazy - nowy rekord dla komentarzy i edycja rekordu dla artykułów? I dlaczego inkrementacja/dekrementacja stanowi problem?


Dwa zapytania, najlepiej w transakcji. Ewentualnie triggery.
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: 3.10.2025 - 01:55