Mam dwie tabele:

pierwsza: towary
- towar_id (PK)
- kat_id (FK) - ID kategorii do której należy towar

druga: kategorie
- kat_id (PK)
- kat_nadrz (ID kategorii nadrzędnej, jeśli ma wartość "0" => jest to kategoria główna)
- kat_poziom (poziom w hierarchii kategorii na któym się ona znajduje)

Przykład:
Załóżmy, że mam 3 kategorie, pierwsza główna i dwie podrzędne należące do tej pierwszej. Tabela będzie miała wówczas następującą zawartość:
1;0;1
2;1;2
3;1;2

Pytanie:
1. W jaki sposób sformułować zapytanie do bazy MySQL aby pytająć o towary należące do kategorii o ID=1 w wynikach znalazły się również wszystkie towary znajdujące się w podkategoriach kategorii o ID=1(tu: do kategorii o ID=2 i 3)?
Czy jest możliwe takie sformułowanie tego zapytanie by wybierało towary więcej niż jeden poziom w dół hierarchii kategorii.
2. Jeśli pytanie nr1 nie dokońca jest możlwe do realizacji to w jaki sposób mogę chociaż zliczyć ile towarów należy do danej kategorii razem z jej wszystkimi podkategorami?

Nie wiem czy się do końca jasno wyraziłem wiadomo co mi chodzi, problem najlepiej zobrazuję takiem przykładem:
Załóżmy, że na Allegro wyszukuję towary w kategorii "Aparaty cyfrowe" a chcę by w wynikach był aparat który jest w podkategorii "Canon". Szukam kategorię wyżej, ale kategoria "Canon" jest podkategorią "Aparatów cyfrowych" więc jest uwzględniana w wynikach.

Czy ma ktoś pomysł na rozwiązanie, jeśli tak to z góry bardzo dziękuję ...

(wersja MySQL: 3.x więc podazpytania odpadają, chyba, że nie ma innej możliwości obejścia tego problemu to wezmę do uwagę zmianę na 4.1)