zoukankan      html  css  js  c++  java
  • SQL联接查询

    1、内联接(inner join)。

    内联接,显示连接表都有的记录,并按最多记录子表显示最终结果。

    1 select * from table1 a
    2 inner join table2 b on a.Id = b.Id
    3 where a.field...

    2、外联接(outer join)。

    外联接,又分为左联接(left join)和右联接(right join),显示主表所有记录,而子没有相关记录部分返回‘NULL’。outer join默认为左联接。

    1 select * from table1 a
    2 left join table2 b on a.Id = b.Id   --显示table1的所有记录,table2不存在记录部分返回NULL
    3 
    4 select * from table1 a
    5 right join table2 b on a.Id = b.Id --显示table2的所有记录,table1不存在记录部分返回NULL 

    如果我们把两表的所有记录都显示出来,以查看哪些表不存在记录,可以使用完整外部联接(full outer join)。

    1 select * from table1 a
    2 full outer join table2 b on a.Id = b.Id --返回两表的所有记录,两表互不存在的记录部分返回Null 

    联接类型

    保留数据行

    A left outer join B

    all A rows

    A right outer join B

    all B rows

    A full outer join B

    all A and B rows

    3、交叉联接(Cross join)。

    返回两个表的笛卡尔积(M * N 行记录)。效率低下,使用范围小。

    1 select * from table1
    2 cross join table2

    4、表值内联(Cross apply)。

    其实跟inner join差不多,只不过联接部分是function返回值的集合。

     1 CREATE FUNCTION dbo.fn_Apply(@sID int)
     2 RETURNS @Apply TABLE (cName nvarchar(50), major nvarchar(50))
     3 AS
     4 BEGIN
     5   INSERT @Apply SELECT cName, major FROM Apply where [sID] = @sID
     6   RETURN    
     7 END
     8  
     9 ---- Student cross apply function fn_Apply.
    10 SELECT Student.sName, Student.GPA, Student.sizeHS,
    11 cName, major 
    12 FROM Student CROSS APPLY dbo.fn_Apply([sID])

    5、表值外联(Outer apply)。

    跟outer join差不多,跟cross apply差不多。

    1 SELECT Student.sName, Student.GPA, Student.sizeHS,
    2 cName, major 
    3 FROM Student OUTER APPLY dbo.fn_Apply([sID])

     

  • 相关阅读:
    Trie Tree和Radix Tree
    DataNode Layout升级解决Du操作引发的性能问题
    Write-Ahead Log(WAL)的工作原理
    YARN的共享存储服务
    AWS S3存储基于Hadoop之上的一致性保证
    简单聊聊HDFS RBF第二阶段工作近期的一些进展
    基于 Confluence 6 数据中心的 SAML 单点登录设置你的身份提供者
    基于 Confluence 6 数据中心的 SAML 单点登录设置 SSL/TLS
    Confluence 6 基于 Confluence 数据中心的 SAML 单点登录
    Confluence 6 用自带的用户管理
  • 原文地址:https://www.cnblogs.com/Jinnchu/p/2668246.html
Copyright © 2011-2022 走看看