初学者求省市区简单 SQL
菜鸟求省市区简单 SQL
一个省市区表 三个字段如下
id 区域id
name 名称
parentid 父id
比如
id name parentid isY
1 辽宁省 0 null
2 大连市 1 null
3 甘井子区 2 1
4 鞍山省 1 null
5 铁西区 4 0
6 铁东区 5 1
……
现在想把isY 的省市区查询出来 (注:只有区isY有值)
结果格式
省, 市, 区, 区的id, isY
请问各位大侠怎么实现?
------解决方案--------------------
你确定只有省市区3级啊:
一个省市区表 三个字段如下
id 区域id
name 名称
parentid 父id
比如
id name parentid isY
1 辽宁省 0 null
2 大连市 1 null
3 甘井子区 2 1
4 鞍山省 1 null
5 铁西区 4 0
6 铁东区 5 1
……
现在想把isY 的省市区查询出来 (注:只有区isY有值)
结果格式
省, 市, 区, 区的id, isY
请问各位大侠怎么实现?
sql
------解决方案--------------------
你确定只有省市区3级啊:
;with cte_tmp as (
select 1 as id, 'LN' as name, 0 as parentid, cast(null as bit) as isY
union all
select 2,'DL',1,null
union all
select 3,'GJZ',2,1
union all
select 4,'AS',1,null
union all
select 5,'TX',4,0
union all
select 6,'TD',5,1
)
select c.name,b.name,a.name,a.id
from cte_tmp a
left join cte_tmp b
on a.parentid = b.id
left join cte_tmp c
on b.parentid = c.id
where a.isY = 1