Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytaniem MySQL
Forum PHP.pl > Forum > Bazy danych > MySQL
northwest
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
uupah5
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.
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.