日期:2014-05-18  浏览次数:20475 次

求一条语句,三表查询(二个表会,三个表搞不定)
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.[配送区域]

------解决方案--------------------