Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] Problem z COUNT i WHERE
ewelinac18
post
Post #1





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 11.07.2007

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


Witam mam problem z COUNT i WHERE
  1. SELECT u.username, u.user_rank, u.user_id, COUNT(t.id_glos) AS bb, u.glos AS srednia
  2. FROM typy AS t
  3. JOIN phpbb_users AS u ON ( u.user_id = t.id_glos )
  4. GROUP BY u.user_id
  5. ORDER BY srednia DESC


Gdy dodam
  1. WHERE bb > 5


Mam problem bo wyskakuje błąd
Kod
#1054 - Unknown column 'bb' in 'where clause'


Macie może pomysł aby jakoś zastosować to WHERE dla COUNT(t.id_glos) AS bb (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


  1. WHERE COUNT(t.id_glos)> 5
Go to the top of the page
+Quote Post
Zbychu666
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 5
Dołączył: 13.07.2008

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


Cytat(AxZx @ 10.08.2008, 17:33:09 ) *
  1. WHERE COUNT(t.id_glos)> 5


Hmm... czy to nie zwraca czasami błędu
Kod
#1111 - Invalid use of group function

? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Zamiast dawać to w WHERE wstaw na końcu zapytania
  1. HAVING bb > 5

wartość pola bb MySQL zna dopiero po pogrupowaniu wyniku (GROUP BY), które robi już po wykonaniu warunków z WHERE, dlatego trzeba użyć HAVING które wykonuje sie na końcu (filtruje wynik zapytania), ale niestety nie korzysta z indeksów więc trzeba korzystać z rozwagą.
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: 26.09.2025 - 15:12