2016-03-30 8 views
0

を数える私はtbl_products親データ表示

id parent_id product_name 
1  0   abc 
2  1   xyz 
3  1   fgh 
4  1   pqr 
5  2   lmn 
6  2   uvw 

データベースを持っている私は、あなたが次のクエリを使用することができます

id child_count product_name 
1  3   abc 
2  2   xyz 
3  0   fgh 
4  0   pqr 
5  0   lmn 
6  0   uvw 

答えて

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うれしいです。あなたの問題を解決するのに役立ちましたら、これを記入してください。 –