Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem zliczanie ilosci wpisów w bazie - 2 tabele
Domini0
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.03.2010

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


Witam!


Problem wyglada następująco otóż mam 2 tabele w bazie jedna z komentarzami a druga z newsami...


Kod
Komentarze:
|Cid|cnid|...


Gdzie CID to id komentarza a cnid to id newsa w którym ma sie wyświetlać.

Problem polega na tym że nie mogę wpaść na pomysł jak poprawnie wyświetlić ilość komentarzy przy każdym newsie. Mógł by mnie ktoś jakoś ukierunkować?


Pozdrawiam ! (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Problem ma się do php jak czajnik do ksiezyca (IMG:style_emoticons/default/winksmiley.jpg) przenosze

  1. SELECT n.*, count(c.ID) commentscount FROM news n
  2. LEFT JOIN comments c ON c.cnid=n.id
  3. GROUP BY n.id


Lepiej jakbys jednak zrobil dodatkowe pole w newsach, w ktorym na biezacą bedziesz zapisywal liczbe komentarzy dla danego newsa.
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(nospor @ 4.03.2010, 08:06:56 ) *
Kod
SELECT n.*, count(c.ID) commentscount FROM news nLEFT JOIN comments c ON c.cnid=n.id
GROUP BY n.id


Zrobiłem sobie dla zabawy takie porównanie.

Kod
SELECT SQL_NO_CACHE n.ID, count(c.ID) commentscount FROM news n
LEFT JOIN comments c ON c.cnid=n.id
GROUP BY n.id


7756 rows fetched in 3.7738s (2.6421s)

Kod
SELECT SQL_NO_CACHE n.ID, c. commentscount
FROM
  news n
LEFT JOIN (
  SELECT
    cnid, COUNT(*) AS commentscount
  FROM
    comments
  GROUP BY
    cnid) AS c
ON
  c.cnid=n.id


7756 rows fetched in 3.1093s (0.4406s)

(IMG:style_emoticons/default/smile.gif)
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: 5.10.2025 - 01:46