Как вывести категории в которых есть товар

Есть категории со вложенность, при открытии основной категории, нужно вывести только те под категории, в которых находится товар

Пример таблиц категорий

id | parent_id | title  
 1 |     0     | Запчасти
 2 |     1     | Кузовные запчасти
 3 |     2     | Бампер  
 4 |     2     | Зеркала  

Пример таблицы товара

id | category_id | title  
 1 |      3      | Новый бампер
 2 |      3      | Черный бампер

Получается, при переходе в категорию - Запчасти нам открывается категория Кузовные запчасти и при переходи в нее, нам открывается только одна категория Бампер, т.к. в категории Зеркала нет товаров.
В голове пока только 1 вариант, это каждый раз при открытии основной категории, перебирать все дочерние и для каждой делать запрос на наличие товаров с данным id под категории (Prod::where('category_id', id)->count())
По сути это будет работать, но что делать, если будет вложенность категорий больше, а нужно узнать на 1 уровне или если товаров будет много. Может есть другие варианты?


Ответы (0 шт):