• left join,inner join,right join,cross join,full join的区别


    1,总论:

    LEFT JOIN返回”first_table”中所有的行尽管在” second_table”中没有相匹配的数据。

    RIGHT JOIN返回”second_table”中所有的行尽管在”first_table”中没有相匹配的数据。

    INNER JOIN返回的结果集是两个表中所有相匹配的数据。

    没听明白?请继续看下文分解。

    2,分解:

    还是用一个例子来的痛快些。。。

    declare @a table(a int,b int)
    declare @b table(a int,b int)

    insert @a values(1,1)
    insert @a values(2,2)
    insert @b values(1,1)
    insert @b values(3,3)

    --
    :
    select * from @a Aa left join @b Bb on Aa.a=Bb.a
    --
    右:
    select * from @a Aa right join @b Bb on Aa.a=Bb.a
    --

    select * from @a Aa join @b Bb on Aa.a=Bb.a
    --
    外:
    select * from @a Aa full join @b Bb on Aa.a=Bb.a
    --
    完全
    select * from @a,@b


    cross join
    是笛卡儿乘积就是一张表的行数乘以另一张表的行数
    left join
    第一张表的连接列在第二张表中没有匹配是,第二张表中的值返回null
    right join
    第二张表的连接列在第一张表中没有匹配是,第一张表中的值返回null
    full join
    返回两张表中的行 left join+right join
    inner join
    只返回两张表连接列的匹配项


  • 相关阅读:
    NBU备份虚拟机高级选项virtual machine quiesce option
    find命令处理之exec与xargs区别
    python学习之列表
    vSphere 6.5密码正确不能登录解决方法
    Vmware vSphere P2V操作文档
    tomcat学习1架构理解
    telnet 退出命令
    敏捷软件开发
    数组、List和ArrayList的区别
    如何阅读一本书(感)
  • 原文地址:https://www.cnblogs.com/zhuawang/p/864972.html
Copyright © 2020-2023  润新知