Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Problem z COUNT i WHERE
Forum PHP.pl > Forum > Bazy danych > MySQL
ewelinac18
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 questionmark.gif
AxZx
  1. WHERE COUNT(t.id_glos)> 5
ewelinac18
też już tak probowałam
Kod
#1054 - Unknown column 'u.glos' in 'field list'
Zbychu666
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

? 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ą.
nospor
no ewidentnie tabela phpbb_users nie zawiera kolumny glos
ewelinac18
Zbychu666 Masz racje smile.gif
Kod
#1111 - Invalid use of group function


nospor w tabeli phpbb_users nie ma kolumny glos tylko w tabeli typy

Udało sie ale po usunięciu ORDER BY
Kod
SELECT u.username, u.user_rank, u.user_id, COUNT(t.id_glos) AS bb, u.glos AS srednia
FROM typy AS t
JOIN phpbb_users AS u ON ( u.user_id = t.id_glos )
GROUP BY u.user_id
HAVING bb >5


gdy klikam aby wysortowało niestety wyskakuje mi błąd #1054 - Unknown column 'u.srednia' in 'order clause'
chyba wygląda na to ze przy HAVING nie da sie używać ORDER BY questionmark.gif
nospor
przeciez srednia to alias wiec
nie: u.srednia
a: srednia
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.