Sql复杂查询--多表联接

多表联接查询

    

    三张表结构如下

产品表(Product)
ProductId ProductName


  

销售产品表(Sale)
ProductId SaleNum



维修产品表(Fix)
ProductId FixNum



        (1)顺序联接--按照from字句的书写顺序进行连接查询

实例:要求查询各类产品的销售及维修数量


ProductName SaleNum FixNum




 

select p.ProductName,s.SaleNum,f.FixNum
from Product p
left outer join Sale s 
   on p.ProductId=s.ProductId
left outer join Fix f 
   on p.ProductId=f.ProductId

执行顺序:(P与S)与F

 

(2)嵌套联接--最里层的先联接执行,联接查询结果再与外层联接

实例:要求查询已销售产品中维修数量


ProductName SaleNum FixNum



select p.ProductName,s.SaleNum,f.FixNum
from Product p
           join Sale s 
left outer join Fix f 
   on s.ProductId=f.ProductId
   on s.ProductId=p.ProductId


执行顺序:

 

   先执行

join Sale s 
left outer join Fix f 
   on s.ProductId=f.ProductId

 

posted on 2012-12-10 23:35  云贤力  阅读(456)  评论(0编辑  收藏  举报

导航