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查询是多表连接的一个示范。
  • 相关阅读:
    HDU 4972 A simple dynamic programming problem
    dd usb 启动盘制作 成功版本
    1233
    openstack kvm 虚拟机磁盘差异衍生
    怎样安装g++/gdb
    区间最小值 线段树 (2015年 JXNU_ACS 算法组暑假第一次周赛)
    hdu
    TCP/IP解析(一):TCP/IP的工作方式
    使用Python生成源文件的两种方法
    zoj1003 Crashing Balloon
  • 原文地址:https://www.cnblogs.com/wangzaizhen/p/5272450.html
Copyright © 2011-2022 走看看