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查询是多表连接的一个示范。
  • 相关阅读:
    [转载]从程序员到项目经理:思维一换天地宽
    针对后台TCP服务F5健康检查配置
    [转载]生活在 Emacs 中
    [转载]为何 Emacs 和 Vim 被称为两大神器
    Emacs文件命令
    功能点估算速记
    [转载]CMMI之功能点估算法:EI、EQ和EO
    一些有用的 Emacs 配置(窗口快速切换、一键透明效果、任意位置删除整行等)
    refiling失败报错Invalid function: org-preserve-local-variables
    Cognos定时Email发送报表数据功能
  • 原文地址:https://www.cnblogs.com/wangzaizhen/p/5272450.html
Copyright © 2011-2022 走看看