数据库取值a表一个值=b表的某一列的值,怎么样写!请指教
a表中有zcxzqh字段记录的是地区编码,b表记录的是全国的地区名称和编码!现在有个问题,在往a表中插入数据时xzqh字段的值不确定,有可能是省或市或县。b表中字段结构:...
a表中有zcxzqh字段记录的是地区编码,b表记录的是全国的地区名称和编码!
现在有个问题,在往a表中插入数据时xzqh字段的值不确定,有可能是省或市或县。
b表中字段结构:省名、省编码、市名、市编码、县名、县编码,现在我要从b表中取出a表xzqh的地区名称,sql语句如下:select distinct a.*,b.shi from jbqk as a,xzqh as b
where (a.zcxzqh=b.shengma or a.zcxzqh=b.shima or a.zcxzqh=b.xianma ) order by a.id desc,假如有一个代码是市的地区编码就会取出市下面所有的县,如何只取出a表zcxzqh对应地区名? 展开
现在有个问题,在往a表中插入数据时xzqh字段的值不确定,有可能是省或市或县。
b表中字段结构:省名、省编码、市名、市编码、县名、县编码,现在我要从b表中取出a表xzqh的地区名称,sql语句如下:select distinct a.*,b.shi from jbqk as a,xzqh as b
where (a.zcxzqh=b.shengma or a.zcxzqh=b.shima or a.zcxzqh=b.xianma ) order by a.id desc,假如有一个代码是市的地区编码就会取出市下面所有的县,如何只取出a表zcxzqh对应地区名? 展开
3个回答
展开全部
首先我要说你的b表表结构不合理,应该是
b(地区编码,地区名称,父编码)
这样多好
不过你要的sql可以为
select a.zcxzqh,c.name
from a,
(select distinct 省编码 as code,省名 as name from b
union all
select distinct 市编码 as code,市名 as name from b
union all
select distinct 县编码 as code,县名 as name from b
)as c
where a.zcxzqh = c.code
b(地区编码,地区名称,父编码)
这样多好
不过你要的sql可以为
select a.zcxzqh,c.name
from a,
(select distinct 省编码 as code,省名 as name from b
union all
select distinct 市编码 as code,市名 as name from b
union all
select distinct 县编码 as code,县名 as name from b
)as c
where a.zcxzqh = c.code
展开全部
select a.zcxzqh,地区名称 from a ,(select distinct 地区编码,地区名称 from b) as c where a.zcxzqh=b.地区编码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看了半天也没看明白,是不是原来a表是叫jbqk,而b表叫xzqh?(根据你的SQL语句看出来的)
我理解不对的地方麻烦说明下。
我理解不对的地方麻烦说明下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询