场景是这样的,有一张表,表里的记录是存在父子关系的,当然有唯一的根记录,现在需要实现一个查询,对于指定记录查询出它全部的子记录,但是要求每一条子记录需要给出该条子记录所拥有的更下一级子记录的数量。
表结构大致如下:
NODE(ID, CODE, PARENT_ID) 其中ID为主键,CODE为编码,PARENT_ID为外键,引用本表ID字段,并且可以为空(根记录).
就不啰嗦了,直接上关联查询,下面是查询编码为100的记录的子记录,语句中的加号表示外连接,不同的数据库产品这个符号不完全一致,有的是用星号。
Select b.CODE AS CHILD_CODE, COUNT(*) AS SUBNUM
FROM NODE AS a,NODE AS b, NODE AS c
where a.ID = b.PARENT_ID and b.ID = c.PARENT_ID and a.CODE='100'
GROUP BY b.CODE