我一般这样建表:
create table unit (uid int auto_increment,
uname varchar(32),
ulevel int,
parentid int,
PRIMARY KEY uid
)
uid是主键,自动编号,uname是省市区县乡镇的名称,ulevel为级别(可以规定省为1、市为2、……),parentid为上级id,省的上级为0,市的上级为对应的省,……
(1)要求查找”中国河北省“的所有县名。该如何查找,写出SQL语句SELECT
县郡表.县郡名
FROM
国家表 JOIN 省市表 ON ( 国家表.国家编号 = 省市表.国家编号 )
JOIN 县郡表 ON ( 县郡表.省市编号 = 省市表.省市编号 )
WHERE
国家表.国名 = '中国' AND 省市表.省市名 = '河北'
(2)在功能不变的前提下,将上述三表合并成一个表,该如何设计?在你的设计中,实现上述查找的SQL语句该如何写
CREATE TABLE 国省县 (
国名:vARCHAR(50),
省市名:varchar(50),
县郡名:VarChar(50)
)
SELECT
县郡名
FROM
国省县
WHERE
国名 = '中国' AND 省市名 = '河北'
省市县关系根据parentid来区分分别是0、1、2类推id-name-parentid
1-北京-0
2-上海-0
3-山东-0
4-海淀区-1
5-西城区-1
6-徐汇区-2
7-长宁区-2
8-菏泽-3
9-青岛-3
10-中关村-4
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)