left join 是left outer join的简写,left join默认是outer属性的。Inner JoinInner Join 逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入联接的每一行。这个和用select查询多表是一样的效果,所以很少用到;outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入中的行。关键就是后面那句,返回的多一些。所以通常意义上的left join就是left outer join
详情如下:
left join 和 left outer join 的区别
通俗的讲: 
  A   left   join   B   的连接的记录数与A表的记录数同 
  A   right   join   B   的连接的记录数与B表的记录数同   
  A   left   join   B   等价B   right   join   A 
   
   
  table   A: 
Field_K,   Field_A 
  1                       a 
  3                       b 
  4                       c 
   
  table   B: 
  Field_K,   Field_B 
  1                       x 
  2                       y 
  4                       z 
   
  select   a.Field_K,   a.Field_A,   b.Field_K,   b.Field_B 
  from   a   left   join   b   on   a.Field_K=b.Field_K 
   
  Field_K         Field_A         Field_K         Field_B         
  ----------   ----------   ----------   ----------   
  1                     a                     1                     x                   
  3                     b                     NULL               NULL 
  4                     c                     4                     z                   
   
  select   a.Field_K,   a.Field_A,   b.Field_K,   b.Field_B 
  from   a   right   join   b   on   a.Field_K=b.Field_K 
   
  Field_K         Field_A         Field_K         Field_B         
  ----------   ----------   ----------   ----------   
  1                     a                     1                     x                   
  NULL               NULL               2                     y                   
  4                     c                     4                     z      --
举个例子: 
  假设a表和b表的数据是这样的。 
  a                         b   
  id     name  id     stock   
  1  a             1         15 
  2         b             2         50 
  3         c                 
   
  select   *   from   a   inner   join   b   on   a.id=b.id 
  这个语法是连接查询中的内连接,它产生的结果是 
  两个表相匹配的记录出现在结果列表中。 
  根据上面的表,出现的结果是这样的 
  a.id     name     b.id     stock 
  1       a             1         15 
  2             b             2         50 
  ---------------------------- 
  select   *   from   a,b   where   a.id=b.id 
  这个语法是内连接的另外一种写法,其执行结果与inner   join   一样 
   
  --------------------------------   
   
  select   *   from   a   left/right   join   b   on   a.id=b.id 
  这个是外连接语法中的左外连接或右外连接  sql left join 多表连接
  如果是左外连接的话,它将显示a表的所有记录, 
  select   a.*,b.*   from   a   left   join   b   on   a.id=b.id 
  查询的结果是这样的: 
  a.id     name     b.id     stock 
  1         a         1             15 
  2               b         2             50 
  3               c       null         null   
  -------------------------------------------- 
  如果是右外连接的话,它将显示b表的所有记录, 
  select   a.*,b.*   from   a   right   join   b   on   a.id=b.id 
  查询的结果是这样的: 
  a.id     name     b.id     stock 
  1         a         1             15 
  2               b         2             50   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。