MySql连接——内连接外连接(左连接右连接全连接)

Posted jedon的交流空间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySql连接——内连接外连接(左连接右连接全连接)相关的知识,希望对你有一定的参考价值。

1. 内联接
    使用比较运算符根据每个表共有的列的值匹配两个表中的行
2. 外联接
    1)左联接 left join /left outer join
        右表无匹配的时候,行为null,左表的行保留
    2)右联接 right join /right outer join
        左表无匹配的时候,行为null,右表的行保留
    3) 全联接 full join
         左表行、右表的行全保留
  3. 示例
    -------------------------------------------------
  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   存在关系   
--------------------------------------------------    
 1) 内连接   
  select   a.*,b.*   from   a   inner   join   b     on   a.id=b.parent_id       
  结果是     
  1   张3                   1     23     1   
  2   李四                  2     34     2   

  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   

 3) 右连接   
  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   

 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
 
4. 推荐:ON只进行连接操作,WHERE只过滤中间表的记录
 
    SELECT T1.C1,T2.CX,T3.CY
    FROM TAB1 T1
           INNER JOIN TAB2 T2 ON (T1.C1=T2.C2)
           INNER JOIN TAB3 T3 ON (T1.C1=T2.C3)
           LEFT OUTER JOIN TAB4 ON(T2.C2=T3.C3);
    WHERE T1.X >T3.Y;
    上面这个SQL查询是多表连接的一个示范。

以上是关于MySql连接——内连接外连接(左连接右连接全连接)的主要内容,如果未能解决你的问题,请参考以下文章

mysql数据库——连接查询(内连接:自然连接,等值连接。外连接:左连接,右连接,全连接)

MySQL 的内连接、左连接、右连接有啥区别?

数据库里左连接右连接和全连接的区别

图解数据库左连接右连接内连接外连接全连接的区别

图解数据库左连接右连接内连接外连接全连接的区别

图解数据库左连接右连接内连接外连接全连接的区别