首页 新闻 会员 周边

sql server省市区三表查询

0
[已解决问题] 解决于 2016-12-12 13:27

需要用到union,比如要查询武汉就会出现湖北省,武汉市,洪山区,这个sql语录怎么样写,望大家能教导!

我创建的表关系如下:

CREATE DATABASE wang
go
/*省表*/
create table province(
proid int identity(1,1) primary key,/*省主键*/
proname nvarchar(50),/*名称*/
prosort int,/*排序*/
)
go
insert into province values ('湖北省','0001')
insert into province values ('湖南省','0002')
insert into province values ('江西省','0003')
insert into province values ('广东省','0004')
insert into province values ('广西省','0005')
/*市级表*/
create table city(
crtyid int identity(1,1) primary key,/*市主键*/
crtyname nvarchar(50) not null,/*市名称*/
proid int,/*所属省份*/
citysort int,/*市排序*/
)
go
insert into city values('武汉','0001','001')
insert into city values('天门','0001','003')
insert into city values('长沙','0002','004')
insert into city values('张家界','0002','005')
insert into city values('深圳','0004','006')
/*县级表*/
create table district(
id int identity(1,1) primary key,/*县主键*/
disname nvarchar(50) not null,/*县名称*/
cityid int not null,/*所属省*/
dissort int,/*县排序*/
)
insert into district values('洪山区','0001','01')
insert into district values('小板镇','0001','02')
insert into district values('长沙县','0002','03')
insert into district values('张家界县','0002','04')
insert into district values('宝安区','0004','05')
go

恳请能帮我看一看,希望你能教教我用sql如何将省市区的查询出来,老师说要用到union,谢谢你

小感伤3的主页 小感伤3 | 初学一级 | 园豆:185
提问于:2016-07-24 09:29
< >
分享
最佳答案
0

刚刚文字打完提交不了,只能截个图上传,这也是我个人的见解,希望采纳

奖励园豆:5
舞动的心 | 菜鸟二级 |园豆:207 | 2016-07-24 13:16

CREATE DATABASE wang
go
/*省表*/
create table province(
proid int identity(1,1) primary key,/*省主键*/
proname nvarchar(50),/*名称*/
prosort int,/*排序*/
)
go
insert into province values ('湖北省','0001')
insert into province values ('湖南省','0002')
insert into province values ('江西省','0003')
insert into province values ('广东省','0004')
insert into province values ('广西省','0005')
/*市级表*/
create table city(
crtyid int identity(1,1) primary key,/*市主键*/
crtyname nvarchar(50) not null,/*市名称*/
proid int,/*所属省份*/
citysort int,/*市排序*/
)
go
insert into city values('武汉','0001','001')
insert into city values('天门','0001','003')
insert into city values('长沙','0002','004')
insert into city values('张家界','0002','005')
insert into city values('深圳','0004','006')
/*县级表*/
create table district(
id int identity(1,1) primary key,/*县主键*/
disname nvarchar(50) not null,/*县名称*/
cityid int not null,/*所属省*/
dissort int,/*县排序*/
)
insert into district values('洪山区','0001','01')
insert into district values('小板镇','0001','02')
insert into district values('长沙县','0002','03')
insert into district values('张家界县','0002','04')
insert into district values('宝安区','0004','05')
go

这我做创建的数据表,恳请能帮我看一看,希望你能教教我用sql如何将省市区的查询出来,老师说要用到union,谢谢你

小感伤3 | 园豆:185 (初学一级) | 2016-07-24 14:55
其他回答(3)
1

话说地区表不都是树状表吗?

吴瑞祥 | 园豆:29449 (高人七级) | 2016-07-24 16:07

能否帮我修改一下

支持(0) 反对(0) 小感伤3 | 园豆:185 (初学一级) | 2016-07-24 16:12

老师布置的作业,不是很懂,要求之后还查询出级联效果,谢谢你

支持(0) 反对(0) 小感伤3 | 园豆:185 (初学一级) | 2016-07-24 16:13
0

其实很简单,一句话, 一个市的parentID 就是 它所在省的id,省的parentId 为0

小精灵儿Pawn | 园豆:470 (菜鸟二级) | 2016-07-25 18:50
0

查询可以做一个视图
Create View V_行政地区目录(省ID,省名称,市ID,市名称,区ID,区名称) as
select z.省ID,省名称,z.市ID,市名称,z.区ID,区名称
from 省表 x,市表 y,区表 z
where z.省ID=x.省ID and z.市ID=y.市ID ;

wa-kaka | 园豆:272 (菜鸟二级) | 2016-07-28 16:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册