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

地区信息表父级编号编号名称AreaFatherIDAreaIDAreaName01中国12江苏13浙江14上海25南京36杭州47浦东第一种情况。用户的地区信息。用户名国... 地区信息表

父级编号 编号 名称
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
UserName CityID
ABC 5
DEF 6
GHI 7
JKL 0

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

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

请高手给出SQL语句。与大家分享
展开
 我来答
奔驰M888
2009-07-14 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2705万
展开全部
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、--有点麻烦。

---
以上,希望对你有所帮助。
lcht1986
2009-07-14 · 超过21用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:65.3万
展开全部
第一:
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.AreaFatherID=c.areaid
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liguangyan062
2009-07-14 · TA获得超过179个赞
知道答主
回答量:84
采纳率:0%
帮助的人:0
展开全部
你先在伏击表area_info中添加一个字段areaid=0 areaname="未选择"的字段
mysql中用函数ifnull(),oracle中用函数nvl()
select UserName,b.AreaName,c.AreaName,d.AreaName
from user_area a,area_info b,area_info c,area_info d
where ifnull(a.CountryID,0)=b.AreaID and
ifnull(a.ProvID,0)=c.AreaID and
ifnull(a.CityID,0)=d.AreaID
还有什么需要可以给我留言
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式