Есть две таблицы bd и bd_category
Таблица bd содержит:
+--------+--------+--------+--------+--------+
|   id   |  title | catid  | views  |  ....  |
+--------+--------+--------+--------+--------+
|    1   |  Test  |   3    |   100  |  ....  |
+--------+--------+--------+--------+--------+
|    2   |  Test2 |   2    |   50   |  ....  |
+--------+--------+--------+--------+--------+
|    3   |  Test3 |   3    |   130  |  ....  |
+--------+--------+--------+--------+--------+
Таблица bd_category содержит:
+--------+--------+--------+
| catid  |titleсat|parentid|
+--------+--------+--------+
|    1   | TestCat|   -1   |
+--------+--------+--------+
|    2   |TestCat1|   1    |
+--------+--------+--------+
|    3   |TestCat2|   1    |
+--------+--------+--------+
views - число просмотров страницы
catid - идентификатор категории-потомка из bd_category
parentid - идентификатор родительской категории
Как видно из примера 2 записи из bd относятся к двум разным категориям-потомкам
Естественно, к каждой из категорий-потомков может относиться много записей из bd.
Мне нужно вывести всего 10 записей из bd имеющих отношение к родительской категории (в примере это catid = 1), отсортировав по views. Т.е. нужно выходить на родительскую категорию через категории-потомки.
Трудность возникает как раз в том, как вывести под родительской категорией все записи, которые относятся к категориям-потомкам.
Вот, не знаю как понятнее еще свормировать вопрос. В итоге я хочу получить типа этого:
TestCat - родительская категория
Test3   | 
Test    | - записи из bd, отсортированные по views
Test2   |
Надеюсь, так понятнее будет. Прошу помочь любым способом. 

У меня был вариант сделать еще одну колонку в bd (parentid), куда записывать id родительской категории.
Может можно как-то лучше это сделать? Очень важна скорость работы, т.к. записей в bd очень много (~20-50 тыс.).