Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> JOIN po raz kolejny
KR2615
post
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


Witam
Proszę o pomoc w zsformułowaniu zapytania. Mam baze danych z ludkami o strukturze id, name, id_miasta. Druga tabela z przypisanymi do nich taryfami o strukturze id, id_klienta, id_taryfy. Jakie zapytanie klepnac, zeby zliczylo mi ile klientow jest w kazdej taryfie (GROUP BY `id_taryfy`) z miasta o id 6? I drugi problem, jak wydobyc z bazy klientow, do ktorych nie jest przypisana zadna taryfa? Z gory dzieki za pomoc!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Tylko nie wiem co ten przykład ma udowodnić? W obu przypadkach COUNT(1) zwraca to samo co COUNT(*). Przynajmniej u mnie, na MySQL 5.5.32.

Kod
mysql> SELECT kategoria, count(1), count(*), COUNT(sub2.id_kategorii)
    -> FROM
    ->     ( SELECT 1 id_kategorii, 'pierwsza' kategoria UNION ALL SELECT 2, 'druga' ) sub
    -> LEFT JOIN
    ->     (SELECT 1 id_kategorii, 1 id_klienta UNION ALL SELECT 1 id_kategorii, 2 id_klienta ) sub2
    -> ON sub.id_kategorii=sub2.id_kategorii
    -> GROUP BY 1\G
*************************** 1. row ***************************
               kategoria: druga
                count(1): 1
                count(*): 1
COUNT(sub2.id_kategorii): 0
*************************** 2. row ***************************
               kategoria: pierwsza
                count(1): 2
                count(*): 2
COUNT(sub2.id_kategorii): 2
2 rows in set (0.00 sec)

mysql> SELECT kategoria, count(1), count(*), COUNT(sub2.id_kategorii)
    -> FROM
    ->     ( SELECT 1 id_kategorii, 'pierwsza' kategoria UNION ALL SELECT 2, 'druga' ) sub
    -> JOIN
    ->     (SELECT 1 id_kategorii, 1 id_klienta UNION ALL SELECT 1 id_kategorii, 2 id_klienta ) sub2
    -> ON sub.id_kategorii=sub2.id_kategorii
    -> GROUP BY 1\G
*************************** 1. row ***************************
               kategoria: pierwsza
                count(1): 2
                count(*): 2
COUNT(sub2.id_kategorii): 2
1 row in set (0.00 sec)
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: 28.12.2025 - 16:18