Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Mysql - problem z COUNT()
djmentos
post 29.01.2009, 19:19:40
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 29.01.2009

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


  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?

Ten post edytował djmentos 29.01.2009, 19:23:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
ayeo
post 29.01.2009, 19:22:55
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


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!


--------------------
Go to the top of the page
+Quote Post
djmentos
post 29.01.2009, 19:28:12
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 29.01.2009

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


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

Ten post edytował djmentos 29.01.2009, 19:30:45
Go to the top of the page
+Quote Post
SongoQ
post 29.01.2009, 22:48:00
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


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


--------------------
Go to the top of the page
+Quote Post
djmentos
post 30.01.2009, 06:45:41
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 29.01.2009

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


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'

Ten post edytował djmentos 30.01.2009, 06:46:44
Go to the top of the page
+Quote Post
SongoQ
post 30.01.2009, 07:56:36
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


  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 )


--------------------
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: 31.07.2025 - 06:35