这个SQL怎么表达?其实就是二个如何相关连!
这个SQL怎么表达?其实就是二个如何相关连!
有如下二表:
不知道什么原因,这个变态的数据库的结构很怪,而且他是借用了金蝶的结构.
表1:
fitemidfNumber fName fitemclassid fParentid fisDetail fDepth
29301 安徽省 1 0 0 1
30802 北京市 1 0 0 1
30903 福建省 1 0 0 1
33501.01003宿州牧圣饲料经营部 1 293 1 2
33601.01004霍邱刘勇饲料添加剂经营部 1 293 1 2
33701.01005怀远牧康兽药总汇 1 293 1 2
33801.01006合肥永安兽药经营部 1 293 1 2
33901.01007阜阳九龙饲料添加剂厂 1 293 1 2
34001.01008滁州赵德会 1 293 1 2
表2:
fitemid fnumberfname
35202.02004北京顺义区张镇兽医站
36703.03008升荣牧场
39503.03036南安官桥镇畜牧兽医咨询部
42004.27252中山市翠辉农场
44205.05022广东省汕头市动物防疫监督所
45306.06009遵义红花岗清书兽药经营部
46108.08005石家庄农科院兽药经营部
48310.10004哈尔滨双赢
49712.12009湖南永州市零陵民望兽药商行
52212.12034衡阳衡南县周永德
54713.13009长春东南饲料有限责任公司
56914.14021阜宁希望饲料有限公司
57014.14022阜宁李文静
57914.14031便仓袁根华
59115.15007江西新余市渝水区罗坊镇李贱根
59415.15010江西省上高县聂木林
59715.15013江西南昌罗家集为民兽药店
我现在的要做的是如下按省区进行筛选的一张表:
省区 客户代码 客户名称 ...
其中的关系,省区和客户间的是通过表1fitemid字段进行相关的!谢谢!
[解决办法]
select b.fName,a.fnumber,a.fname
from table2 a
left join (select * from table1 where fParentid=0) b on a.fitemid=b.fitemid
[解决办法]
我怎么觉得表2 在某种程度上面是表1的子表阿
你看到parentid这个字段了么,这个就是找到省了。省/直辖市一级的parentid=0,其他的parentid有值
除非你你用substring来对比,比前三个字符
select b.fName,a.fnumber,a.fname
from table2 a
left join (select * from table1 where fParentid=0) b
convert(varchar,a.fitemid,10)=substring(convter(varchar,b.fitemid,10),1,3)