数据库取值a表一个值=b表的某一列的值,怎么样写!请指教

来源:百度知道 编辑:UC知道 时间:2024/06/09 04:46:31
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对应地区名?

首先我要说你的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

看了半天也没看明白,是不是原来a表是叫jbqk,而b表叫xzqh?(根据你的SQL语句看出来的)

我理解不对的地方麻烦说明下。

select a.zcxzqh,地区名称 from a ,(select distinct 地区编码,地区名称 from b) as c where a.zcxzqh=b.地区编码