ITPub博客

首页 > 数据库 > Oracle > SQL复杂查询多表连接

SQL复杂查询多表连接

Oracle 作者:swq618 时间:2015-04-28 12:56:24 0 删除 编辑
 三张表结构如下
产品表(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博客 ” ,链接:https://blog.itpub.net/29674916/viewspace-1608609/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-05-24

  • 博文量
    108
  • 访问量
    289810