areaname areaid parentid

郑州    410100    410000
开封    410200    410000
洛阳    410300    410000
平顶山    410400    410000
安阳    410500    410000
鹤壁    410600    410000
新乡    410700    410000
焦作    410800    410000
濮阳    410900    410000

好比我们有以上一个行政区域规划表,我们如何来查询河南省下面的省市县区街道呢?很明显这是一个递归存储的过程,postgreSQL支持了递归查询

WITH RECURSIVE T AS (
select name areaname,areaid,parentid 
from jh_area where parentid = '410000'
UNION ALL
select k.name areaname,k.areaid, k.parentid 
from jh_area k, T
where T.areaid = k.parentid 
) select * from T;

这里面的T,可以作为这个查询的结果作为一张虚拟表,根据这个结果再联合查询,就可以形成递归查询所有数据

最后修改于 2021-06-04 16:07:51
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇