现在有一张表,里面有三个字段,
code(组织编码) parent(父节点) level(组织等级)
中国 0 国家
浙江省 中国 省
江苏省 中国 省
杭州市 浙江省 市
南京市 江苏省 市
西湖区 杭州市 县/区
玄武区 南京市 县/区
现在我要查询这张表,输出结果为
code1 code2 code3
西湖区 浙江省 中国
玄武区 江苏省 中国
就是要列出每个level是县的组织,所对应的省和国家对应的三列数据。
表中是树状结果,要求返回三列
求高手指点!谢谢
SELECT one.code
,two.parent ,"中国" as code3 FROM city one,city two
WHERE one.parent = two.code
and one.level
LIKE "%县%"
就是给这张表取两个别名,然后自身连接后查询就好了
亲测是对的,不过我用的mysql,有冲突自己改改
查询level字段等于中国的记录不就可以了
select d.code as code1 ,b.code as code2,a.code as code3
from test a,test b,test c,test d where d.parent = c.code and c.parent = b.code and b.parent = a.code
and a.parent = 0 and d.level = '县/区'
select d.code as code1 ,b.code as code2,a.code as code3
from test a,test b,test c,test d where d.parent = c.code and c.parent = b.code and b.parent = a.code
and a.parent = 0 and d.level = '县/区'
select d.code as code1 ,b.code as code2,a.code as code3
from test a,test b,test c,test d where d.parent = c.code and c.parent = b.code and b.parent = a.code
and a.parent = 0 and d.level = '县/区'