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语句。与大家分享 展开
父级编号 编号 名称
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语句。与大家分享 展开
3个回答
展开全部
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.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.AreaFatherID=c.areaid
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你先在伏击表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
还有什么需要可以给我留言
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
还有什么需要可以给我留言
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询