![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
przypuscmy, ze mam tabele produkty (id, id_kategorii) i kategorie (id, nazwa) oraz zapytanie:
[sql:1:e6c7930c85]SELECT COUNT(*) AS ilosc,k.id,k.nazwa FROM produkty p,kategorie k WHERE p.id_kategorii=k.id GROUP BY k.id ORDER BY k.nazwa[/sql:1:e6c7930c85] i chce, aby wyswietlilo to nazwy wszystkich kategorii, wraz z iloscia produktow w tych kategoriach, ale problem w tym, ze to zapytanie zrobi to ale tylko dla tych kategorii, z przynajmniej jednym produktem jak zrobic, aby wyswietlic nazwy takze tych kategorii, ktore nie maja produktow? Codzi mi o zastosowanie jak najmniejszej ilosci zapytan. Nie chce wyswietlac listy kategorii i dla kazdej kolejne zapytanie generowac o ilosc produktow, moze jest inny sposob, aby wyswietlic te kategorie z 0 produktow. Moze dodac kolejne zapytanie, pobierajace wszystkie kategorie i pozniej laczace jakos te 2 zapytania. Z gory dziekuje za odpowiedz. -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 30.06.2003 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:49e74e51b7]SELECT COUNT(*) AS ilosc,k.id,k.nazwa
FROM kategorie k LEFT JOIN produkty p ON(p.id_kategorii=k.id) GROUP BY k.id ORDER BY k.nazwa[/sql:1:49e74e51b7] Może coś takiego? |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
qrcze, nie wiem, jakos mi to nie dziala
troche uproscilem kod w przykladzie do postu i byc moze teraz cos zle robie w skrypcie w rzeczywistosci mam tabele: produkt (id, id_podkategorii), podkategoria(id, id_kategorii), kategoria(nazwa) czyli np. mam strukture produkty: 1|1 2|1 3|1 4|2 5|4 podkategorie: 1|1 2|1 3|1 4|3 kategorie: procesory myszki pamieci monitory i chce, zeby mi w menu wyswietlilo takie cos: procesory (4) myszki (0) pamieci (1) monitory (0) korzystam z zapytania (niby przerobione z twojego, ale moze zle): [sql:1:20c2c71fb1]SELECT COUNT(*) AS ilosc,k.id,k.nazwa FROM ".PREFIX."podkategorie pk,".PREFIX."kategorie k LEFT JOIN ".PREFIX."produkty p ON(p.id_podkategorii=pk.id) WHERE pk.id_kategorii=k.id GROUP BY k.id ORDER BY k.nazwa[/sql:1:20c2c71fb1] jak usune WHERE warunek po nim, to wyswietla wszystkie kategorie, ale w nawiasach wszedzie jest ta sama liczba i jakas duza jakby ktos mogl napisac poprawny kod zapytania, to bylbym wdzieczny -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 30.06.2003 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:72d09ca34e]SELECT COUNT(p.id) AS ilosc, k.nazwa
FROM kategorie k LEFT JOIN podkategorie pk ON(pk.id_kategorii = k.id) LEFT JOIN produkty p ON(p.id_podkategorii = pk.id) GROUP BY k.id ORDER BY k.nazwa[/sql:1:72d09ca34e] Przetestowałem na localu i działa. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
thx, u mnie tez dziala
masz u mnie wirtualne piwo ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 06:32 |