SQL Server中的自连接和全外连接

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术: SQL Server

作者:黄瑞杰

撰写时间:2022/05/07

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

一、SQL Server自连接

自联接用于将表连接到自身(同一个表)。 它对于查询分层数据或比较同一个表中的行很有用。

自联接使用内连接或左连接子句。 由于使用自联接的查询引用同一个表,因此表别名用于为查询中的表分配不同的名称。

以下是将表 T 连接到自身的语法:

上面查询语句中两次引用表 T 。表别名 t1 和 t2 用于为 T 表分配不同的名称。

二、SQL Server全外链接

FULL OUTER JOIN当左表或右表中存在匹配项时,该命令将返回所有行。

下面创建一些示例表来演示全外连接。

首先,创建一个名为 pm 的新模式,它代表项目管理。

接下来,在 pm 模式中创建名为 projects 和 members 的新表:

假设每个成员只能参与一个项目,每个项目都有零个或多个成员。 如果项目处于构思阶段,则不会分配 任何成员。

然后,向 projects 和 member 表中插入一些行记录:

之后,查询 projects 和 member 表中的数据:

最后,使用 FULL OUTER JOIN 查询 projects 和 member 表中的数据:

执行上面查询语句,得到以下结果:

在此示例中,查询返回参与项目的成员,不参与任何项目的成员以及没有任何成员的项目。

SQL Server中的自连接和全外连接相关推荐

  1. 如何列出引用SQL Server中给定表的所有外键?

    我需要在SQL Server数据库中删除一个高度引用的表. 我如何获取要删除表需要删除的所有外键约束的列表? (与在Management Studio的GUI中单击相比,SQL的答案更好.) #1楼 ...

  2. 图数据库 graph_通过SQL Server中的自连接了解Graph数据库相对于关系数据库的好处

    图数据库 graph Earlier this year, I published several articles on SQLShack with an aim of demonstrating ...

  3. SQL Server中的递归CTE和外键引用

    介绍 (Introduction) Foreign key constraints are a powerful mechanism for preserving referential integr ...

  4. sql server 外键_什么是SQL Server中的外键

    sql server 外键 In this article, we will seek an answer to an important question – "What is a for ...

  5. SQL Server中的表变量

    In this article, we will explore the table variable in SQL Server with various examples and we will ...

  6. 11gr2全外连接优化执行计划(二)

    在11.2中,Oracle对于全外连接的执行计划进行了优化. 这篇介绍新增的两个相关的HINT. 11gr2全外连接优化执行计划:http://yangtingkun.itpub.net/post/4 ...

  7. sql server的搜索_在SQL Server中进行全文本搜索

    sql server的搜索 介绍 (Introduction) In most cases, we will use clustered and non-clustered indexes to he ...

  8. 数据库之SQL(基本连接,内连接,左外连接,右外连接,全外连接,交叉连接,自连接)

    之前的博客内容我们分享了数据表的查询与管理,但那只是针对数据库中的一个表格进行的查询管理,现在如果我们想要同时看到两个数据表中的数据的话,那要怎么办呢?采用多连接查询的方式. SQL中有哪几种多连接的 ...

  9. 如何在SQL Server中索引外键列

    Before going through the main concern of this article, indexing the foreign key columns, let's take ...

最新文章

  1. 剖析ASP.NET下部构造
  2. 如何使用敏捷工具Leangoo脑图做Epic/ Theme /Story 管理
  3. 并发编程-09安全发布对象+单例模式详解
  4. 降低数据中心功耗的 4 大方法
  5. PHP实现带重试功能的curl连接示例
  6. linux crontab sleep,linux crontab 执行任务(7秒执行)
  7. myeclipse运行jsp文件_【新书连载12】软件测试专项技术—JSP
  8. C#通信之Socket通信的简单例子
  9. 基于 Redis 的分布式锁到底安全吗(上)?
  10. 【导航仿真】基于matlab GUI PSINS导航仿真【含Matlab源码 1496期】
  11. node 更新_更新应用时,如何实现 K8s 零中断滚动更新?
  12. activiti6创建28张表
  13. discuz招商加盟门户整站模板
  14. 移动硬盘计算机无法打开硬盘,移动硬盘无法访问,详细教您移动硬盘无法访问怎么办...
  15. 性能测试工程师职业现状分析
  16. 三百英雄服务器维护2020,【梦服】2020年12月3日【版本更新说明】
  17. 《你坏-大冰》阅读笔记
  18. 基于Graphhopper的路线导航方案
  19. 数字逻辑学习总结-MOOC数字逻辑设计
  20. simulink/stateflow官方案例之自动变速器

热门文章

  1. 我需要30部美或英剧的剧名
  2. python中scale什么意思啊_python数字图像处理(7):图像的形变与缩放
  3. Vivado FPGA基础设计操作流程(1)
  4. 打破双亲委派的几种方式
  5. 五个好用的网络协议分析工具(附下载地址)
  6. otg usb 定位_USB OTG插入检测识别
  7. 高级软件工程第八次作业:东理三剑客团队作业
  8. 目标检测——目标检测方法的综述
  9. 《C语言中time_t数据类型》
  10. 1414,成绩(C++一本通评测系统)