Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przy COUNT() nie zwraca wszystkich wyników
TNT
post 6.06.2010, 20:38:43
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 2
Dołączył: 14.04.2007

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


Cześć
Mam takie oto zapytanie:
  1. SELECT c.title AS categoryTitle, i.id, i.tstamp, i.title, i.text, i.author_id, m.firstname, m.lastname, COUNT(com.id) AS totalComments
  2. FROM tl_pm_message_category AS c
  3. JOIN tl_pm_message AS i ON (i.pid = c.id)
  4. JOIN tl_member AS m ON (m.id = i.author_id)
  5. JOIN tl_pm_comment AS com ON (com.message_id = i.id)
  6. WHERE c.pid=7
  7. GROUP BY i.id

Jak mam 4 rekordy w tl_pm_message, tak zwraca mi tylko te, które mają odniesienia w tl_pm_comment (tl_pm_message.id = tl_pm_comment.message_id).
Innymi sowy:
Zwraca mi tylko te wiadomości (message), które mają jakieś komentarze (comment). W przypadku gdy wiadomość nie ma żadnego komentarza, nie jest ona brana pod uwagę.

Dlaczego tak się dzieje?
Go to the top of the page
+Quote Post
eccocce
post 7.06.2010, 09:17:43
Post #2





Grupa: Zarejestrowani
Postów: 165
Pomógł: 5
Dołączył: 10.07.2008
Skąd: Wrocław

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


Może niedokładnie przeczytałem, ale spróbuj ostatniego JOINa zamienić na "LEFT JOIN" - wtedy w odpowiednich kolumnach będziesz miał NULL dla wiadomości, które nie mają komentarzy.
Go to the top of the page
+Quote Post
TNT
post 7.06.2010, 14:37:28
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 2
Dołączył: 14.04.2007

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


Cytat(eccocce @ 7.06.2010, 10:17:43 ) *
Może niedokładnie przeczytałem, ale spróbuj ostatniego JOINa zamienić na "LEFT JOIN" - wtedy w odpowiednich kolumnach będziesz miał NULL dla wiadomości, które nie mają komentarzy.

Kurka, działa. A jak wcześniej próbowałem to coś się krzaczyło. Tak czy siak - dzięki smile.gif
Go to the top of the page
+Quote Post
Method
post 23.06.2010, 10:17:58
Post #4





Grupa: Zarejestrowani
Postów: 177
Pomógł: 6
Dołączył: 14.01.2003
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


offtopic.gif czemu jak chcesz miec licznik z jednej tabelki to robisz joina? może zapytanie efektowne ale nie efektywne smile.gif


--------------------
"zycia nie mierzy sie liczba oddechow,
ale liczba chwil, ktore zapieraja dech w piersi"
Go to the top of the page
+Quote Post
TNT
post 23.06.2010, 11:07:38
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 2
Dołączył: 14.04.2007

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


Cytat(Method @ 23.06.2010, 11:17:58 ) *
offtopic.gif czemu jak chcesz miec licznik z jednej tabelki to robisz joina? może zapytanie efektowne ale nie efektywne smile.gif

Co propnujesz w zamian? snitch.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 11:25