当前位置: 代码迷 >> Sql Server >> 求一条语句,三表查询(二个表会,三个表搞不定),该如何解决
  详细解决方案

求一条语句,三表查询(二个表会,三个表搞不定),该如何解决

热度:82   发布时间:2016-04-27 13:27:37.0
求一条语句,三表查询(二个表会,三个表搞不定)
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.[配送区域]
------解决方案--------------------
  相关解决方案