sql语句,根据地区ID编号取对应的地区名称。

来源:百度知道 编辑:UC知道 时间:2024/05/15 13:07:26
地区信息表

父级编号 编号 名称
AreaFatherID AreaID AreaName
0 1 中国

1 2 江苏
1 3 浙江
1 4 上海

2 5 南京
3 6 杭州
4 7 浦东

第一种情况。
用户的地区信息。

用户名 国家ID 省ID 城市ID
UserName CountryID ProvID CityID
ABC 1 2 5
DEF 1 3 0
GHI 1 4 7
JKL 0 0 0

注:CountryID ProvID CityID的值,是对应的地区信息表中的AreaID的值,不是AreaFatherID的值。

如何构造出一个sql语句能够得出如下结果
UserName CountryID CountryName ProvID ProvName CityID CityName
ABC 1 中国 2 江苏 5 南京
DEF 1 中国 3 浙江 0 未选择
GHI 1 中国 4 上海 7 浦东
JKL 0 未选择 0 未选择 0 未选择

第二种情况。
用户的地区信息。

用户名 城市ID
UserN

1:
select
a.UserName,
a.CountryID,
nvl(b.AreaName,'未选择') as CountryName,
a.ProvID,
nvl(c.AreaName,'未选择') as ProvName,
a.CityID,
nvl(d.AreaName,'未选择') as CityName
from 用户的地区信息 a left join 地区信息表 b on a.CountryID=b.AreaID
left join 地区信息表 c on a.ProvID=b.AreaID
left join 地区信息表 d on a.CityID=c.AreaID;

2、--有点麻烦。

---
以上,希望对你有所帮助。

第一:
select a.usrname,a.countryid,b.AreaName countryname,a.provid,c.areaname provname,a.cityid,d.areaname cityname
from 用户地区表 a,地区信息表 b,地区信息表 c,地区信息表 d
where a.CountryID=b.AreaID and a.ProvID=c.Areaid and a.cityid=d.areaid
第二:
select a.usrname,b.areaid countryid,b.areaname countryname ,c.areaid provid,c.areaname provname,d.areaid cityid ,d.areaname cityname
from 用户地区表 a,地区信息表 b,地区信息表 c,地区信息表 d
where a.countryid=b.areaid and d.AreaFatherID=0 and c.AreaFatherID=d.areaid and b.Are