Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] count w zapytaniu z join i group by
psw779
post 22.09.2008, 11:13:01
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.03.2006

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


Mam takie zapytanie:

  1. SELECT albums.id FROM albums LEFT JOIN pictures ON pictures.ida = albums.id WHERE pictures.id IS NOT NULL GROUP BY albums.id


Chciałbym na poziomie bazy czyli np. przy pomocy COUNT(*) dowiedzieć się ile to zapytanie zwraca wierszy, nic więcej.
Można powiedzieć, że odpowiednik mysql_num_rows() które nie jest chyba zbyt optymalne przy dziesiątkach tysięcy rekordów.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
phpion
post 22.09.2008, 11:17:54
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Najprościej jak się da:
  1. SELECT COUNT(*) FROM albums LEFT JOIN pictures ON pictures.ida = albums.id WHERE pictures.id IS NOT NULL GROUP BY albums.id

To zapytanie powinno Ci zliczyć liczbę niepustych albumów - o to Ci chodzi? Jeśli chciałbyś zliczyć liczbę fotek to należałoby to zrobić od drugiej strony: od pictures zrobić złączenie do albums.
Go to the top of the page
+Quote Post
psw779
post 22.09.2008, 12:04:06
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.03.2006

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


Już tak próbowałem i wiem, że to zapytanie niestety zwraca liczbę fotek w każdym albumie i nadal mam ileś tysięcy wierszy w odpowiedzi.
Go to the top of the page
+Quote Post
nospor
post 22.09.2008, 12:17:47
Post #4





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




mozesz uzyc podzapytania
  1. SELECT count(*) FROM (SELECT albums.id FROM albums LEFT JOIN pictures ON pictures.ida = albums.id WHERE pictures.id IS NOT NULL GROUP BY albums.id) pod


Ale skoro grupujesz po albums.id czyli defacto pobierzesz liczbe rekordow, mozna wiec krocej
  1. SELECT count(*) FROM albums


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 24.07.2025 - 15:31