sql 语句中的 (+) 是什么意思?和左连接区别


1. Oracle 数据库

在select语句中(+)指的是外连接,是连接查询的一种方法。

例:select t1.*,t2.* from dept t1,emp t2 where t1.deptno=t2.deptno(+);

其中 : t1.deptno=t2.deptno(+)表示,即使t2(emp表)中不存在匹配的记录,在t1(dept表)也查询出来。


2. MySql

 子句中的表或视图可通过内连接或完整外部连接按任意顺序指定;但是,用左或右向外连接指定表或视图时,表或视图的顺序很重要。有关使用左或右向外连接排列表的更多信息,请参见使用外连接。         

例子:   
  a表       id   name     b表     id     job   parent_id   
              1   张3                   1     23     1   
              2   李四                  2     34     2   
              3   王武                  3     34     4   
  a.id同parent_id   存在关系   
    
  内连接   
  select   a.*,b.*   from   a   inner   join   b     on   a.id=b.parent_id       
  结果是:    
  1   张3                   1     23     1   
  2   李四                  2     34     2   
    
  左连接(经典例子:学生表 和 学生计费表    
  select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id   
  结果是:     
  1   张3                    1     23     1   
  2   李四                  2     34     2   
  3   王武                  null   

  右连接   
  select   a.*,b.*   from   a   right   join   b     on   a.id=b.parent_id       
  结果是:     
  1   张3                   1     23     1   
  2   李四                 2     34     2   
  null                       3     34     4   
    
  完全连接   
  select   a.*,b.*   from   a   full   join   b     on   a.id=b.parent_id   
  结果是:     
  1   张3                   1     23     1   
  2   李四                 2     34     2   
  null                 3     34     4   
  3   王武                 null

你可能感兴趣的:(MySQL)