mysql 之: inner join , left join 和 right join 的区别

来源:互联网 发布:ubuntu登陆界面鼠标 编辑:程序博客网 时间:2024/05/16 06:01
     通俗的讲:  
  A   
left   join   B      |:连接的记录数与A表的记录数同(显示A表的所有记录 ,B表不存在记录则为NULL)

  A   right   join   B  |:连接的记录数与B表的记录数同(显示B表的所有记录 ,A表不存在记录则为NULL)   

      A   left   join   B     |: 等价B   right   join   A 

     A   inner   join  B    |: 两个表相匹配的记录出现在查询结果列表中


提示: select   *   from   a,b   where   a.Field_K=b.Field_K      |联表查询 :这个语法是内连接的另外一种写法,其执行结果与inner   join   一样  ;

提示 :left   join是left   outer   join的简写 ,查询结果一样;

   
表结构: ===========================================================================
  
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     

      ---------------------------------------------------------------------------------------------------------------------------------------

     select   a.Field_K,   a.Field_A,   b.Field_K,   b.Field_B  
  
from   a   inner   join   b   on   a.Field_K=b.Field_K 


  Field_K         Field_A         Field_K         Field_B          
  
----------   ----------   ----------   ----------    
  1                     a                     1                     x                   

  4                     c                     4                     z