Mam pewien problem, którego nie potrafię sam rozgryźć, męczyłem się co prawda nad tym spoooro czasu, ale nie udało mi się nic sensownego wymyślić

Dlatego proszę was o pomoc w skonstruowaniu zapytania SQL, mam następującą bazę:
CODE
-------------------------------------------------
| ID | NAZWA KATEGORI | PODKATEGORIA |
-------------------------------------------------
| 1 | Kategoria 1 | 0 |
| 2 | Kategoria 2 | 0 |
| 3 | Kategoria 3 | 0 |
| 4 | Podkategoria 1 | 2 |
| 5 | Podkategoria 2 | 2 |
| 6 | Podkategoria 3 | 1 |
-------------------------------------------------
itp...
Kategorie (1,2,3) są głównymi kategoriami na stronie ponieważ maja 0 w kolumnie "PODKATEGORIA". Podkategorie (1,2,3) przynależą do Kategorii głównych pod id wskazanym przez kolumne "PODKATEGORIA".
Np. Podkategoria 1 i 2 należą do Kategorii 2.
Bardzo mi zależy na tym by skonstruować zapytanie wyświetlające kategorie posegregowane w następujący sposób:
CODE
Kategoria 1
- Podkategoria 3
Kategoria 2
- Podkategoria 1
- Podkategoria 2
Kategoria 3
Ponieważ w bazie znajduje się już sporo rekordów, na zmianę konstrukcji całej bazy jest już trochę za późno.
I tutaj moja prośba do bardziej zaawansowanych ode mnie użytkowników o pomoc przy skonstruowaniu tego zapytania.
Mi niestety jak już zaznaczałem wyżej nie udało się to - mimo wielu przemyślan i prób... ;(
Pozdrawiam