2016-03-30 2 views

ответ

2

Вы можете использовать следующий запрос:

SELECT id, 
     (SELECT COUNT(*) 
     FROM tbl_products 
     WHERE parent_id = t.id) AS child_count, 
     product_name 
FROM tbl_products AS t 

Запрос использует коррелированный подзапрос, чтобы получить количество дочерних элементов текущей записи.

Demo here

В качестве альтернативы вы можете использовать JOIN:

SELECT t1.id, 
     COALESCE(t2.cnt,0) AS child_count, 
     t1.product_name 
FROM tbl_products AS t1   
LEFT JOIN (SELECT parent_id, COUNT(*) AS cnt 
     FROM tbl_products 
     GROUP BY parent_id 
) AS t2 ON t1.id = t2.parent_id 

Demo here

+0

Спасибо Сэр хорошо – abhayendra

+0

@abhayendra Рад, что смог помочь. Пожалуйста, отметьте это или любой другой ответ, как принято, если это поможет вам решить вашу проблему. –

Смежные вопросы