- 締切済み
紐づいた個数を取得したい
以下のようなテーブルがあった場合、PARENT が 0 のものを抜き出して、且つそれに紐づいてるカラムの個数を取得したいのですが、どのようにしたらいいでしょうか? +---+----+--------+ + ID | XXX | PARENT | +---+----+--------+ + 1 | *** | 0 | +---+----+--------+ + 2 | *** | 1 | +---+----+--------+ + 3 | *** | 4 | +---+----+--------+ + 4 | *** | 0 | +---+----+--------+ + 5 | *** | 1 | +---+----+--------+ + 6 | *** | 0 | +---+----+--------+ + 7 | *** | 4 | +---+----+--------+ + 8 | *** | 4 | +---+----+--------+ *PARENT には、ID に紐づいた値が入ります 出力例 +---+----+--------+ + ID | XXX | COUNT | +---+----+--------+ + 1 | *** | 2 | +---+----+--------+ + 4 | *** | 3 | +---+----+--------+
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
あ、XXXの表示も含めるとこんなかんじ select PARENT ,(select XXX from hoge as t2 where t1.PARENT=t2.ID) as XXX ,COUNT(*) as COUNT from hoge as t1 where PARENT!=0 group by PARENT
- yambejp
- ベストアンサー率51% (3827/7415)
IDでくくろうとするから変なのでPARENTでまとめれば済む話では? select PARENT,COUNT(*) as COUNT from hoge where PARENT!=0 group by PARENT
補足
SELECT t1.`ID` ,`XXX` , `t2`.`COUNT` FROM `hoge` AS `t1` LEFT OUTER JOIN ( SELECT COUNT(`ID`) AS `COUNT` , `PARENT` FROM `hoge` WHERE `PARENT`!=0 GROUP BY PARENT ) AS t2 ON t2.PARENT = t1.ID WHERE t1.`PARENT` = 0 で出来ました。