再问变态的数据库结构如何写SQL语句?
经过网友的多次分析论证,现在SQL语句离真实的结果越来越近了,但是尚有些许遗憾,现在再次请各位大侠出山帮忙,谢谢各位了!
有二表,一张是记录数据库中的各类档案的表,称为tblItem,另一些是客户表(tblOrganization),业务员,等等,暂且称为表2 ,
现在将截图如下:
表1 :
fitemid fNumber fName fitemclassid fParentid fisDetail fDepth
293 01 安徽省 1 0 0 1
308 02 北京市 1 0 0 1
309 03 福建省 1 0 0 1
335 01.01003 宿州牧圣饲料经营部 1 293 1 2
336 01.01004 霍邱刘勇饲料添加剂经营部 1 293 1 2
337 01.01005 怀远牧康兽药总汇 1 293 1 2
338 01.01006 合肥永安兽药经营部 1 293 1 2
339 01.01007 阜阳九龙饲料添加剂厂 1 293 1 2
340 01.01008 滁州赵德会 1 293 1 2
表2:
fitemid fnumber fname
352 02.02004 北京顺义区张镇兽医站
367 03.03008 升荣牧场
395 03.03036 南安官桥镇畜牧兽医咨询部
420 04.27252 中山市翠辉农场
442 05.05022 广东省汕头市动物防疫监督所
453 06.06009 遵义红花岗清书兽药经营部
经过网友的分析,现在得到的SQL如下:
select c.fName, a.fname,a.fnumber,a.fAddress,a.fLinker,a.fPhone,a.fFax from
tblOrganization a inner join tblItem b on a.fNumber=b.fnumber inner join tblItem c
on b.fitemclassid=c.fitemclassid and c.fitemclassid=1 and c.fParentid=0
现在的查询是如下:
福建省北京顺义区张镇兽站 02.02004
福建省升荣牧场 03.03008漳州柯志群
福建省南安官桥镇畜牧兽医咨询部 03.03036南安市官桥镇西街45号 吴金钱
福建省中山市翠辉农场 04.27252
福建省广东省汕头市动物防疫监督所 05.05022
福建省遵义红花岗清书兽药经营部6.06009遵义王思明
福建省石家庄农科院兽药经营部8.08005石家庄刘福晨
福建省哈尔滨双赢10.10004哈尔滨徐春燕
.
.
.
也就是中国有31个省区,他把各位省和每一客户进行了遍历,本来数据库中只有500个客户,他全部来一次也就是31×500=15500条记录,晕死了,各位帮我再分析分析,谢谢!
[解决办法]
你这次的描述有进步
没回答前我说一句,这个真的不是变态的数据库设计
子表很可能是作为特殊需要存在的。
你出现重复是因为你的join 没有写好,我来试验写一个,你给我反馈
select a.fname as ProvinceName,b.fname as companyName,,b.fAddress,b.fLinker,b.fPhone
from (select fname,fAddress,fLinker,fPhone,fParentid from tab1 inner join tab2 on
tab1.fNumber=tab2.fNumber) b inner join tab1 a on b.fname=a.fname
