首页新闻找找看学习计划

求个省市区三个表 合并一个表的SQL语句,格式如下!

0
悬赏园豆:15 [已解决问题] 解决于 2019-04-19 15:08

省表a:ProvinceID,ProvinceName

市表b:cityid,cityname,ProvinceID

区表b:countryid,countryname,ProvinceID,cityid

 

怎么合并成如下格式?

比如:

山东省

山东省济南市

山东省济南市历下区

山东省济南市xxx区

山东省泰安市

山东省泰安市xxx区

湖南省

湖南省xxx市

 

我现在联合查询 就是三张表有规律的排下来,怎么写呢?? 

程序员已转早餐店主的主页 程序员已转早餐店主 | 初学一级 | 园豆:18
提问于:2019-04-12 16:23
< >
分享
最佳答案
0

用 union all,把所有结果集拼接:

select distinct * from 

(select '省'=ProvinceName,'市'=null,'区'=null from Province with(nolock)

union all

select '省'=p.ProvinceName,'市'=ct.cityName,'区'=null from Province p with(nolock) left join city ct on p.ProvinceID = ct.ProvinceID

union all

select '省'=p.ProvinceName,'市'=ct.cityName,'区'=c.countryname from Province p with(nolock) left join city ct on p.ProvinceID = ct.ProvinceID left join country c on c.cityid = ct.cityid) t

order by t.省 desc
收获园豆:15
三人乐乐 | 老鸟四级 |园豆:3245 | 2019-04-13 11:01

我也是这个

程序员已转早餐店主 | 园豆:18 (初学一级) | 2019-04-19 15:08

@efreer: 这种实现方式很愚蠢,写出来会被领导骂,先实现,在优化,哈哈

三人乐乐 | 园豆:3245 (老鸟四级) | 2019-04-19 15:18

@三人乐乐: https://q.cnblogs.com/q/114607/  给解密下这个js是什么内容!!

程序员已转早餐店主 | 园豆:18 (初学一级) | 2019-04-19 15:22
其他回答(3)
0

select concat(ProvinceName,cityname,counttryname) AS address
from a join b.....
join c ....

zycyc | 园豆:231 (菜鸟二级) | 2019-04-12 16:38
0

这是要做三级联动下拉框吗?

二毛605332 | 园豆:182 (初学一级) | 2019-04-12 16:51
0

select city1.name as '一级地名',
city2.name as '二级地名',
city3.name as '三级地名'
from city as city1 inner join city as city2 on city1.parentid = 0 and city1.id = city2.parentid
inner join city as city3 on city2.id = city3.parentid

无色诏 | 园豆:202 (菜鸟二级) | 2019-04-13 21:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册