读书人

求一条语句,三表查询(二个表会,三个表

发布时间: 2012-04-12 15:46:35 作者: rapoo

求一条语句,三表查询(二个表会,三个表搞不定)

SQL code
总表tb1                                        地址    体积    城市    车牌号    配送司机    送货人    配送日期                DOA-广东省广州市增城市历城街观园东路    0.642    增城    粤A51Y75    张三    A1    2011-9-8 14:31                东莞市莞城区中侨大厦B座5F03室    0.0854    东莞    粤A50Y42    李四    A2    2011-9-8 14:29                广东佛山广东省佛山市禅城区同华东一路7号佛山市荣山中学/吴小冬    0.537    佛山    粤A50Y42    李四    A2    2011-9-9 9:57                广东广州广州市东风中路509号1203房 / 刘礼坚    2    广州    粤A50Y08    李八    A3    1900-1-1 0:00                广东广州广州市荔湾区花地大道中坑口大街182号(四季花园)    1.071    广州    粤A50Y42    李四    A2    2011-9-9 9:57                广东广州广州市天河区科韵路22号4楼/ 吴国明    3.9748    广州    粤A50Y33    李七    A4    2011-9-8 10:26                                                        区域基础表TB2                                        地址    配送区域                                    DOA-广东省广州市增城市历城街观园东路    增城市                                    东莞市莞城区中侨大厦B座5F03室    DDD                                    广东佛山广东省佛山市禅城区同华东一路7号佛山市荣山中学/吴小冬    白云区                                    广东广州广州市东风中路509号1203房 / 刘礼坚    荔湾区                                    广东广州广州市荔湾区花地大道中坑口大街182号(四季花园)    荔湾区                                    广东广州广州市天河区科韵路22号4楼/ 吴国明    天河区                                                                            费用基础表tb3                                        车牌号    配送区域    司机费用    送货人    点费                        粤A51Y75    增城市    120    21                            粤A50Y42    DDD    70    21    6                        粤A50Y42    白云区    7    19    6                        粤A50Y08    荔湾区    200    23                            粤A50Y42    荔湾区    59    12    6                        粤A50Y33    天河区    21    14                            条件:1.根据总表的地址,带出区域基础表的配送区域                                        2.根据1条件得出的配送区域与总表的车牌号带出,司机费用,送货人,点费                                        最后结果                                        地址    体积    城市    车牌号    配送司机    送货人    配送区域    司机费用    送货人    点费    配送日期DOA-广东省广州市增城市历城街观园东路    0.642    增城    粤A51Y75    张三    A1    增城市    120    21        2011-9-8 14:31东莞市莞城区中侨大厦B座5F03室    0.0854    东莞    粤A50Y42    李四    A2    DDD    70    21    6    2011-9-8 14:29广东佛山广东省佛山市禅城区同华东一路7号佛山市荣山中学/吴小冬    0.537    佛山    粤A50Y42    李四    A2    白云区    7    19    6    2011-9-9 9:57广东广州广州市东风中路509号1203房 / 刘礼坚    2    广州    粤A50Y08    李八    A3    荔湾区    200    23        1900-1-1 0:00广东广州广州市荔湾区花地大道中坑口大街182号(四季花园)    1.071    广州    粤A50Y42    李四    A2    荔湾区    59    12    6    2011-9-9 9:57广东广州广州市天河区科韵路22号4楼/ 吴国明    3.9748    广州    粤A50Y33    李七    A4    天河区    21    14        2011-9-8 10:26


[解决办法]
可以试试 将两个表连接的数据放在临时表里
然后用临时表 连接第三张表
[解决办法]
select t1.* , t2.* , t3.* from tb1 t1 , tb2 t2 , tb3 t3
where t1.地址 = t2.地址 and t2.配送区域 = t3.配送区域
[解决办法]
SQL code
select a.地址,a.体积,a.城市,a.车牌号,a.配送司机,a.送货人,b.配送区域,c.司机费用,c.送货人,c.点费,b.配送日期from tb1 a inner join tb2 b on a.地址=b.地址 inner join tb3 c on c.配送区域=b.配送区域
[解决办法]
这是个步骤
容易理解
成功之后你可以把临时表去了 换成你的连接
探讨
引用:
可以试试 将两个表连接的数据放在临时表里
然后用临时表 连接第三张表

不相用临时,想一步到总表

[解决办法]
SQL code
select a.地址,    a.体积,    a.城市,    a.车牌号,    a.配送司机,    a.送货人,    b.配送区域,    c.司机费用,    c.送货人,    c.点费 ,   a.配送日期from T1 as a    inner join T2 as b on a.[地址]=b.[地址]    inner join T3 as c on c.[配送区域]=b.[配送区域]
------解决方案--------------------


select t1.* , t2.* , t3.* from tb1 t1 , tb2 t2 , tb3 t3
where t1.地址 = t2.地址 and t2.配送区域 = t3.配送区域

select t1.* , t2.* , t3.* from
tb1 t1 inner join tb2 t2 on t1.地址 = t2.地址
inner join tb3 t3 on t2.配送区域 = t3.配送区域

[解决办法]
仔细看了一下你的代码,代码应该没有问题,请检查
1.总表有重复记录,先进行处理
2.区域明细表是不是全部有总表地址对应的记录
3.费用基础表是不是有总表及区域表所对应的记录
如果全部数据也有对上了,请一一核对一下...

如果问题解决请结贴!

读书人网 >SQL Server

热点推荐