zoukankan      html  css  js  c++  java
  • 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查询是多表连接的一个示范。
  • 相关阅读:
    SQLLoader7(只导入数据文件的其中几行记录)
    SQLLoader6(一个或多个数据文件按条件导入不同的表)
    SQLLoader5(从多个数据文件导入到同一张表)
    SQLLoader4(数据文件中的列与表中列不一致情况-filler)
    SQLLoader3(数据文件没有分隔符时的导入)
    SQLLoader2(导入EXCEL或csv格式的文件)
    SQLLoader1(简单测试,以控制文件方式导入数据)
    可编程内存
    JSONP
    SSL协议
  • 原文地址:https://www.cnblogs.com/wangzaizhen/p/5272450.html
Copyright © 2011-2022 走看看