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
原文地址:https://www.cnblogs.com/yunxianli/p/4111968.html