SQL複雜查詢多表連線

swq618發表於2015-04-28
 三張表結構如下
產品表(Product)
ProductId ProductName


  
銷售產品表(Sale)
ProductId SaleNum



維修產品表(Fix)
ProductId FixNum



(1)順序聯接--按照from字句的書寫順序進行連線查詢

例項:要求查詢各類產品的銷售及維修數量


ProductName SaleNum FixNum



 

  1. select p.ProductName,s.SaleNum,f.FixNum  
  2. from Product p  
  3. left outer join Sale s   
  4.    on p.ProductId=s.ProductId  
  5. left outer join Fix f   
  6.    on p.ProductId=f.ProductId  
執行順序:(P與S)與F


(2)巢狀聯接--最裡層的先聯接執行,聯接查詢結果再與外層聯接

例項:要求查詢已銷售產品中維修數量


ProductName SaleNum FixNum




select p.ProductName,s.SaleNum,f.FixNum  
  1. from Product p  
  2.            join Sale s   
  3. left outer join Fix f   
  4.    on s.ProductId=f.ProductId  
  5.    on s.ProductId=p.ProductId  

執行順序:


   先執行

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29674916/viewspace-1608609/,如需轉載,請註明出處,否則將追究法律責任。

相關文章