今天写程序,碰到了关于数据库的连接问题。所以决定,争取搞定它。。。
查了查网上高手的解释。。。然后结合自己的运行结果。。。貌似自己有点开悟了。。。

SQL语句中有关的连接主要有: 外连接、内链接、全连接。

1、外连接  又分为: 左外连接、右外连接、完整外部联接。。。 
  

LEFT   JOIN   或   LEFT   OUTER   JOIN。   
  
左向外联接的结果集包括   LEFT   OUTER   子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。 
  

RIGHT   JOIN   或   RIGHT   OUTER   JOIN。   
  
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。 
  

FULL   JOIN   或   FULL   OUTER   JOIN。   
  
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。 
  

INNER  JOIN 
  
内连接为 两个表中必须都同时满足条件时,也可以说是两个表中都必须在另一个表中有对应的项,而不能为空。才返回该行。。。 
  

CROSS  JOIN 
  
其实对 交叉连接 还是不太明白,,,只知道 没有 where 字句的交叉连接相当于 笛卡尔积。交叉连接 后面只能接  where  字句,不能接  on  。。。 
  

没有左内连接、右内连接。 
  

 
  个人理解 : 左外连接、右外连接中的 左 、 右 是说的 以哪个表为准。 
  
 
              外连接、内连接中的  外、 内  是说的 是否去掉 null列。。。 
  
 
                  即外连接  不去掉空列。。。内连接去掉空列。。。 
  

下面是  copy  的例子: 
  
例子:   
  
  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