Pobieranie postów kategorii głównej

Cześć!

Mam kategorie, każda kategoria (oprócz roota oczywiście) ma kategorię nadrzędną (struktura ma wiele poziomów). Jeden wpis, może być przypisywany do kilku kategorii. W jaki sposób wyciągnąć wszystkie wpisy (bez duplikatów), które należy do kategorii X lub jej kategorii podrzędnych?

Napisz sobie metodę, które rekurencyjnie wyciąga id wszystkich podkategorii dla wybranej kategorii. Wyniki zapisuj do cache (odświeżanego po edycji drzewa kategorii), żeby nie musieć tego robić za każdym razem. Wtedy już tylko pobierasz posty wykorzystując listę id kategorii i operator sql "IN".