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查询是多表连接的一个示范。
  • 相关阅读:
    .NET Framework 3.0 和 Windows SDK
    用 C# 开发 SQL Server 2005 的自定义聚合函数
    IronPython 源码剖析系列(2):IronPython 引擎的运作流程
    IronPython 个人网站样例宝藏挖掘
    SetRenderMethodDelegate 方法
    使用 Castle ActiveRecord 开发发现的一些问题
    IronPython for ASP.NET CTP WhitePaper 摘要翻译
    关于 IE 模态对话框的两个问题
    逐步改用 IronPython 开发你的 ASP.NET 应用程序
    使用 Flash 和 C# WinForm 配合打造界面漂亮的应用程序(摘要)
  • 原文地址:https://www.cnblogs.com/wangzaizhen/p/5272450.html
Copyright © 2011-2022 走看看