• sql join 用法总结


      sql中常用的join包括以下几种:

       cross join

       inner join

       left join(left outer join)

       right join(right outer join)

       full join (full outer join)

        现有数据表employee和CompanyInfor,如下所示

            

      1.cross join

         cross join 为两张表的笛卡尔乘积,连接后返回结果集的行数为两张表行数的乘积。

    select a.*,b.* from employee a cross join CompanyInfor b
    ----等价于-----
    select a.*,b.* from employee a ,CompanyInfor b
    ---此时返回结果集的行数为4*4

       

      2.inner join

         inner join 返回的结果集是  在cross join 返回的结果集的基础上,去掉不满足连接条件的。

    select a.*,b.* from employee a inner join CompanyInfor b on a.companyId=b.id
    ---等价于---
    select a.*,b.* from employee a cross join CompanyInfor b  where a.companyId=b.id
    ---等价于---
    select a.*,b.* from employee a ,CompanyInfor b where a.companyId=b.id

       

       3.left join (left outer join)

          left join 是在inner join的结果集上加上左表中没被选上的行,行的右表部分每个字段都用NUll填充。

          left join 左边的表为主表,返回的结果集的行数为左边表的行数。

    ---a表为主表,返回的结果集的行数为a表的行数---
    select a.*,b.* from employee a left join CompanyInfor b on a.companyId=b.id

       

       4.right join(right outer join)

          right join 是在inner join的结果集上加上右表中没被选上的行,行的左表部分每个字段都用NUll填充。

          right join 右边的表为主表,返回的结果集的行数为右边表的行数。

    --b表为主表,返回的结果集的行数为b表的行数----
    select a.*,b.* from employee a right join CompanyInfor b   on a.companyId=b.id

       

       5.full join(full outer join)

          full join返回的结果集为left join和right join结果集的并集

    select a.*,b.* from employee a full join CompanyInfor b  on a.companyId=b.id 

       

  • 相关阅读:
    时空上下文视觉跟踪(STC)算法的解读与代码复现(转)
    神经网络:卷积神经网络(转)
    图像卷积与滤波的一些知识点(转)
    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
    深度学习(卷积神经网络)一些问题总结(转)
    卷积神经网络的初步理解LeNet-5(转)
    中期总结
    转载:通俗理解遗传算法
    转载:协方差与协方差矩阵
    装载:关于拉格朗日乘子法与KKT条件
  • 原文地址:https://www.cnblogs.com/NoteofEveryDay/p/join.html
Copyright © 2020-2023  润新知