Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie w tabeli z FK do siebie
zaajcu
post
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 3
Dołączył: 18.08.2011
Skąd: Chrzanów

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


Cześć.
Mam dwie tabele jedna to kategorie_produktow, druga zaś to produkty

wyglądają tak:

kategorie_produktow

id | kategorie_produktow_id(FK) | nazwa
1 null Multimedia
2 1 Telewizory
3 1 Komputery
4 2 LCD
5 2 Plazma
6 3 Laptopy
7 3 Stacionarne



oraz produkty

id | kategorie_produktow_id(FK) | nazwa | opis | stan ...


potrzebuje wykonać zapytanie które zwróci mi podkategorie z wybranej kategorii wraz z ilością produktów w wszystkich podkategoriach podkategorii kategorii (IMG:style_emoticons/default/tongue.gif)
np:

wybieram kategorie Multimedia (1)

zatem chciałbym aby wypisał mi kategorie:

Telewizory | ilosc produktow w Telewizory, LCD, Plazma (uwzględniając wszystkie kategorie poniżej kategori Telewizory
Komputery | komputery, laptopy, stacionarne

jedyny pomysł jaki na to mam to robienie tego na raty
- Najpierw pobranie danych o kategoriach
- potem stworzenie drzewa listy podrzędnych id
- a dopiero potem zapytanie SQL liczące ilość.

Może jest na to jakiś inny lepszy sposób niż wykonywanie x zapytań?

Ten post edytował zaajcu 13.11.2012, 14:39:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Ilość produktów w danej kategorii (czy to z uwzględnieniem jej podkategorii czy bez) możesz bez problemu trzymać w dodatkowej kolumnie, której wartość zmienia się o jeden przy dodaniu/usunięciu produktu - nie będziesz musiał każdorazowo zliczać produktów.
2. Jeżeli skorzystałbyś z bardziej odpowiedniego dla RDBMS-ów modelu drzewa, np. popularny nested set, mógłbyś w zasadzie wybrać wszystko czego potrzebujesz jedynym, trywialnym (przy uwzględnieniu punktu #1) zapytaniem.
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: 11.10.2025 - 15:40