Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem MySQL
northwest
post 11.04.2011, 15:52:26
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Witam serdecznie,
mam mały problem z zapytaniem SQL. Mam coś takiego:
  1. SELECT DISTINCT B.bf_id AS id_kategori, B.nazwa AS nazwa_kategori, C.bf_id AS id_podkategori, C.nazwa AS nazwa_podkategori, D.bf_id AS id_podpodkategori, D.nazwa AS nazwa_podpodkategori FROM cms_produkty A INNER JOIN cms_kategorie B ON A.kategoria = B.bf_id INNER JOIN cms_podkategorie C ON A.podkategoria = C.bf_id INNER JOIN cms_podpodkategorie D ON A.podpodkategoria = D.bf_id ORDER BY A.kategoria, A.podkategoria, A.podpodkategoria ASC ;


Które zwraca mi wyniki w formie:
id_kategori- nazwa_kategori- id_podkategori- nazwa_podkategori- id_podpodkategori- nazwa_podpodkategori
1- Kategoria 1- 2- Podkategoria 2- 3- Podpodkategoria 3
1- Kategoria 1- 3- Podkategoria 3- 2- Podpodkategoria 2
1- Kategoria 1- 3- Podkategoria 3- 3- Podpodkategoria 3
2- Kategoria 2- 1- Podkategoria 1- 1- Podpodkategoria 1

chciałbym dodać kolejną kolumnę "ilośćkategorii" i "ilość podkategorii" w których znajdowała by się ilość kategorii i podkategorii. W tym przypadku wyglądałoby to tak:
id_kategori- nazwa_kategori- id_podkategori- nazwa_podkategori- id_podpodkategori- nazwa_podpodkategori-ilośćkategorii-ilość podkategorii
1- Kategoria 1- 2- Podkategoria 2- 3- Podpodkategoria 3-3 (są 3 kategorie 1)-1 (jest 1 podkategoria 2)
1- Kategoria 1- 3- Podkategoria 3- 2- Podpodkategoria 2-3 (są 3 kategorie 1)-2 (są 3 podkategoria 3)
1- Kategoria 1- 3- Podkategoria 3- 3- Podpodkategoria 3-3 (są 3 kategorie 1)-2 (są 3 podkategoria 3)
2- Kategoria 2- 1- Podkategoria 1- 1- Podpodkategoria 1-1 (jest 1 kategoria 1)-1 (jest 1 podkategoria 1)


Wie ktoś może jak to zrobić?


Z góry dziękuje za pomoc,
North
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
uupah5
post 12.04.2011, 09:36:31
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 4.09.2010
Skąd: warszawa

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


Cytat(northwest)
chciałbym dodać kolejną kolumnę "ilośćkategorii" i "ilość podkategorii" w których znajdowała by się ilość kategorii i podkategorii. W tym przypadku wyglądałoby to tak:
id_kategori- nazwa_kategori- id_podkategori- nazwa_podkategori- id_podpodkategori- nazwa_podpodkategori-ilośćkategorii-ilość podkategorii
Wie ktoś może jak to zrobić?

zazwyczaj group by i count(*) dają radę.
ogólnie:
select A, B, count( C ), count(D) from t1, t2 where t1.id=t2.id group by A,B;
może być zliczanie unikalnych C i D:
select A, B, count(distinct C), count(distinct D) from t1, t2 where t1.id=t2.id group by A,B;

możesz powyższe rozpisać również korzystając z joinów - to są zapisy równoważne.

Ten post edytował uupah5 12.04.2011, 09:37:17
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: 24.07.2025 - 17:04