如何用一个sql语句解决如下问题

jys830105 2009-07-21 09:44:15
数据库中两个表,
表1,记录了文件的对应的经纬度,国家ID,省份ID,市ID,县ID
File_ID Longitude Latitude CountryID ProvinceID CityID CountyID

表2,记录了各个地址ID对应的名字,地址ID可以是国家,省,市,县,全部放在这一个表里
Place_ID Place_Name

问题是如何用一条sql语句通过File_ID查到某个文件对应的经纬度及国家,省,市,县的名称
...全文
91 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jys830105 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jinjazz 的回复:]
select * from 表1 a
left join 表2 b on a.CountryID =b.Place_ID
left join 表2 c on a.ProvinceID =c.Place_ID
left join 表2 d on a.CityID =d.Place_ID
left join 表2 e on a.县ID =e.Place_ID
[/Quote]
稍微修改了一下,已经搞定。各位jf
jys830105 2009-07-21
  • 打赏
  • 举报
回复
谢谢各位,代码调试中
feixianxxx 2009-07-21
  • 打赏
  • 举报
回复
declare @File_id int
set @File_id=?--某个值
select
Longitude as 经度,
Latitude as 维度,
国家=(select PLACE_NAME FROM tb2 WHERE Place_ID=t.CountryID),
省份=(select PLACE_NAME FROM tb2 WHERE Place_ID= t.ProvinceID ),
市=(select PLACE_NAME FROM tb2 WHERE Place_ID=t.CityID ),
县=(select PLACE_NAME FROM tb2 WHERE Place_ID=t. CountyID )
from tb1 t
where [FILE_ID]=@File_id
feixianxxx 2009-07-21
  • 打赏
  • 举报
回复
declare @File_id int
set @File_id=?--某个值
select
Longitude as 经度,
Latitude as 维度,
国家=(select PLACE_NAME FROM tb2 WHERE Place_ID=t.国家ID),
省份=(select PLACE_NAME FROM tb2 WHERE Place_ID=t.省份ID),
市=(select PLACE_NAME FROM tb2 WHERE Place_ID=t.市ID),
县=(select PLACE_NAME FROM tb2 WHERE Place_ID=t.县ID)
from tb1 t
where [FILE_ID]=@File_id
sdhdy 2009-07-21
  • 打赏
  • 举报
回复
楼主可以参考一下各种JOIN的用法。
http://blog.csdn.net/sdhdy/archive/2009/06/06/4248355.aspx
sdhdy 2009-07-21
  • 打赏
  • 举报
回复
select a.file_id,'经度'=a.Longitude, '纬度'=a.Latitude,
国家=b.Place_Name,省=c.Place_Name,市=d.Place_Name,县=e.Place_Name
from ta a
left join tb b on a.CountryID=b.Place_ID
left join tb c on a.ProvinceID=c.Place_ID
left join tb d on a.CityID=d.Place_ID
left join tb e on a.县ID=e.Place_ID
jwdream2008 2009-07-21
  • 打赏
  • 举报
回复
Select A.Place_Name as '国家名称', B.Place_Name as '省份'
,C.Place_Name as '城市名称',D.Place_Name as '县名'
from 表1
inner join 表2 as A on 表1.CountryID =A.Place_ID
inner join 表2 as B on 表1.ProvinceID =B. Place_ID
inner join 表2 as C on 表1.CityID =C. Place_ID
inner join 表2 as D on 表1.CountyID =D. Place_ID
xyworkroom 2009-07-21
  • 打赏
  • 举报
回复
select a.经纬度,T0.place_name as 国家,T1.place_name as 省,T2.place_name as 市 ,T3.place_name as 县
from 表1 a
left join 表2 T0 on a.CountryID =T0.Place_ID
left join 表2 T1 on a.ProvinceID =T1.Place_ID
left join 表2 T2 on a.CityID =T2.Place_ID
left join 表2 T3 on a.CountyID =T3.Place_ID
where File_id=值
gzzwind 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jinjazz 的回复:]
select * from 表1 a
left join 表2 b on a.CountryID =b.Place_ID
left join 表2 c on a.ProvinceID =b.Place_ID
left join 表2 d on a.CityID =b.Place_ID
left join 表2 e on a.县ID =b.Place_ID
[/Quote]

正解
jinjazz 2009-07-21
  • 打赏
  • 举报
回复
select * from 表1 a
left join 表2 b on a.CountryID =b.Place_ID
left join 表2 c on a.ProvinceID =c.Place_ID
left join 表2 d on a.CityID =d.Place_ID
left join 表2 e on a.县ID =e.Place_ID
jinjazz 2009-07-21
  • 打赏
  • 举报
回复
select * from 表1 a
left join 表2 b on a.CountryID =b.Place_ID
left join 表2 c on a.ProvinceID =b.Place_ID
left join 表2 d on a.CityID =b.Place_ID
left join 表2 e on a.县ID =b.Place_ID
htl258_Tony 2009-07-21
  • 打赏
  • 举报
回复
我也感觉很绕.
华夏小卒 2009-07-21
  • 打赏
  • 举报
回复
看的稀里糊涂
jwdream2008 2009-07-21
  • 打赏
  • 举报
回复
给点示例数据,看看!

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧