Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mysql - problem z COUNT()
Forum PHP.pl > Forum > Bazy danych
djmentos
  1. SELECT COUNT(id), COUNT(stat_keyword.kwd_data) FROM stat_user, stat_keyword WHERE id_serwisu='2' AND stat_keyword.kwd_ser='2'


W rezultacie otrzymuje, że obie kolumny mają 957 wartości... tyle, że w żadnej ich liczba nie przekracza 200.
Ktoś wie co z tym nie tak?
ayeo
Witam na forum!

Proszę stosować znaczniki BBcode jeżeli wklejasz próbkę kodu. W MySQL funkcje takie jak MAX,MIN,SUM,COUNT nie działają bez GROUP BY

Kod
SELECT COUNT(id), COUNT(stat_keyword.kwd_data) FROM stat_user, stat_keyword WHERE id_serwisu='2' AND stat_keyword.kwd_ser='2' GROUP BY id_serwisu;


Pozdrawiam!
djmentos
Miło mi smile.gif

W mojej książeczce nic o ORDER BY wspomniane nie jest co nie zmienia faktu, że po dodaniu wynik jest również nieprawdziwy.
  1. SELECT COUNT( stat_user.id ) , COUNT( stat_keyword.kwd_data )
  2. FROM stat_user, stat_keyword
  3. WHERE stat_user.id_serwisu = '2' AND stat_keyword.kwd_ser = '2'
  4. GROUP BY stat_user.id_serwisu;


wynik z PhpMyAdmin'a
COUNT(stat_user.id) | COUNT(stat_keyword.kwd_data)
1092 | 1092


Rzeczywista liczba rekordów w tabelach to 323 i 7
SongoQ
O co chodzi w tym zapytaniu z "FROM stat_user, stat_keyword
WHERE stat_user.id_serwisu = '2' AND stat_keyword.kwd_ser = '2'"

Powiazanie miedzy tabelami ? Bo to Ci daje takie wyniki
djmentos
chciałbym otrzymać dwie kolumny.
pierwszą, która zawiera ilość rekordów w tabeli stat_user
drugą, która zawiera ilość rekordów w tabeli stat_keyword
z, tym że mają zostać policzone tylko rekordy gdzie wskazane pola mają wartość '2'
SongoQ
  1. SELECT ( SELECT COUNT( stat_user.id ) FROM stat_user WHERE id_serwisu = 2 ) AS user_count,
  2. ( SELECT COUNT( kwd_data ) FROM stat_keyword WHERE kwd_ser = 2 )
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.