连接查询——笛卡尔乘积

article/2025/9/3 7:11:05

连接查询

概要

  • 含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接
  • 笛卡尔乘积现象:表1 有m行,表2 有n行,结果=m*n行

在这里插入图片描述

  • 发生原因:没有有效的连接条件
  • 如何避免:添加有效的连接条件
  • 分类
    ①按年代:sql92标准、sql99标准 (推荐)
    ②按功能:内连接、外连接、交叉连接
    补充
    1、内连接包括等值连接、非等值连接、自连接
    2、外连接包括左外连接、右外连接、全外连接
    3、sql99标准:支持内连接、外连接(左外和右外)、交叉连接

sql92标准

1、等值连接

  • 语法:where 表1.字段=表2.字段
  • 特点
    ①夺标等值连接的结果为多表的交集部分
    ②n个表连接,则至少需要n-1个连接条件
    ③多表的顺序没有要求
    ④一般需要为表起别名
    ⑤可以搭配排序、分组、筛选一起使用
  • 多次用到表名限定,可将表起别名,语法同为字段起别名
    在这里插入图片描述
    补充:为表起别名后,无法使用原始表名作为限定
    在这里插入图片描述
  • 涉及多个表时,表可以前后交换,无固定位置
  • 可以加筛选
  • 可以加分组
    在这里插入图片描述
  • 可以排序
  • 可以实现多表连接

2、非等值连接

  • 涉及between and等的连接
    在这里插入图片描述

3、自连接

  • 在同一张表中建立若干连接
    在这里插入图片描述

sql99标准

  • 语法:
    select 查询列表
    from 表1 别名【连接类型】
    join 表2 别名
    on 连接条件
    【where 筛选条件】
    【group by 分组】
    【having 筛选条件】
    【order by 排序列表】

1、内连接(inner)

  • 语法
    select 查询列表
    from 表1 别名
    inner join 表2 别名
    on 连接条件;
    【where】
    【group by】
    【having】
    【order by】

  • 特点
    ①可以添加排序、分组、筛选
    ②inner可以省略
    ③筛选条件放在where后,连接条件放在on后,提高了分离性,便于阅读
    ④inner join连接和sql92语法中的等值连接效果是一样的,都是查询多表的交集

1.1等值连接

  • 案例一:普通等值连接
    在这里插入图片描述
    补充
    1、表交换顺序仍成立
  • 案例二:涉及三个表的等值连接
    在这里插入图片描述

1.2非等值连接

在这里插入图片描述

1.3自连接

2、外连接

  • 应用场景:用于查询一个表中有,另一个表中没有的记录
  • 特点:
    ①外连接的查询结果为主表中的所有记录
    如果从表有和它匹配的,则显示匹配的值
    如果从表中没有和它匹配的,则显示null值
    外连接查询结果=内连接结果+主表有而从表没有的记录
    ②左外和右外交换两个表的顺序,可以实现同样的效果

2.1左外连接(left【outer】)

  • 特点:left join左边的是主表
  • 案例
    在这里插入图片描述

2.2右外连接(right【outer】join)

  • 特点:right join右边的是主表

2.3全外连接(full【outer】join)

  • 特点:内连接的结果+表1中有但表2没有的+表2中有单表1没有的

3、交叉连接(cross join)

  • 特点:相当于笛卡尔乘积

总结

  • 内连接
    在这里插入图片描述
  • 左外连接
    在这里插入图片描述
  • 右外连接
    在这里插入图片描述
    在这里插入图片描述
  • 全外连接
    在这里插入图片描述
    在这里插入图片描述

http://chatgpt.dhexx.cn/article/vSZF0jW5.shtml

相关文章

python求乘积_Python实现求笛卡尔乘积的方法

Python实现求笛卡尔乘积的方法 本文实例讲述了Python实现求笛卡尔乘积的方法。分享给大家供大家参考,具体如下: 在数学中,两个集合X和Y的笛卡尓乘积(Cartesian product),又称直积,表示为X Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。假设…

启动系统服务,错误1053:服务没有及时响应启动或控制请求

原因分析: 一般由于超时设置导致的 解决方法: 进入 注册表: 方法一:开始 >>> 运行 >>> 输入 regedit >>> 确定 方法二:winR >>> 输入 regedit >>> 确定 单击开始&…

Windows服务没有及时响应启动或控制请求

编写好的一个Windows服务程序,在本地测试正常,但是放到服务器上出现1053:服务没有及时响应启动或控制请求,如下图所示: 右键我的电脑,选择“管理”,如下图所示: 在打开的服务器管…

使用一段时间,oracle服务在启动时报1053:服务没有及时响应启动或控制请求

题外话: 1、Oracle服务启动顺序:先启动监听器,再启动数据库实例。例如OracleOraHome12TNSListener、OracleOraHome12ManagementServer、OracleServiceORCL 2、Oracle服务关闭顺序:先关闭数据库实例,在关闭监听器 问题…

服务没有及时响应启动或控制请求(本人真实碰到,安装成功)

这是我安装sql server2019出现的错误,经过网上到处踩坑,花了好长时间终于解决了这个问题。,这个错误好像是电脑版本和sql server 2019冲突了,下载sql server2017就行。 解决方法: 首先把安装的sql server2019文件全部卸…

sql服务器没有及时响应或控制请求,sql server发生错误1053服务没有及时响应或控制请求...

错误 1053:服务没有及时响应启动或控制请求 症状 当您停止或暂停托管 Microsoft Windows 服务时,如果该服务停止或暂停过程所花的时间比已配置的时间长,您会收到错误信息 原因 ServiceBase 类直接从 Advapi32.dll 文件的 ScDispatcherLoop 中…

广联达服务器没有及时响应,小编为你作答服务没有及时响应启动或控制请求 【解决步骤】 的详细方法_...

近日有小伙伴发现电脑出现问题了,在突然遇到服务没有及时响应启动或控制请求 时不知所措了,对于服务没有及时响应启动或控制请求 带来的问题,其实很好解决服务没有及时响应启动或控制请求 带来的问题,下面小编跟大家介绍服务没有及时响应启动或控制请求 解决方法: 服务没有…

Windows 无法启动MYSQL80服务 错误1053:服务没有及时响应启动或控制请求

Windows 无法启动MYSQL80服务 错误1053:服务没有及时响应启动或控制请求。 遇到的问题 图片描述 文字描述 Windows 无法启动MYSQL80服务 错误1053:服务没有及时响应启动或控制请求。 出现原因 在安装MySQL的最后一步,配置启动MySQL服务的…

Worke Service 错误 1053: 服务没有及时响应启动或控制请求

本地测试:无问题 服务器测试: 错误 1053: 服务没有及时响应启动或控制请求。(推荐) 解决步骤方法 : 1、Program.cs 2、安装对应的.NET环境,譬如: 就需要安装.net 5.0的sdk(官网去下对应的版本就行) 如果除此之外还是…

WDS服务启动时提示:服务没有及时响应启动或控制请求

解决方法: 在WDS服务器,打开Windows部署服务控制台/在左窗格中右键单击WDS服务器,然后打开“属性”,然后选择“ 多播”选项卡,将”从DHCP获取IP地址“更改为”使用以下范围中的地址“,然后重新启动WDS服务器…

u盘无响应+开启什么服务器,服务没有及时响应启动或控制请求怎么办?如何解决系统服务没有及时响应启动...

最近有位朋友在使用电脑的时候,遇到了Windows无法启动服务错误 1053:服务没有及时响应启动或控制请求RRS feed的情况,不知道怎么回事。其实,这种情况原因比较多,比如说电脑不正确的超时设置,也会导致电脑服…

安装SQL2019 提示“服务没有及时响应启动或控制请求”

得到一个数据库需要在本地还原,但是发现是2019的数据库,本地只有2012的版本的sql Server数据库,没得法,只有重新安装一个sql 2019 的。 拿着之前下好的sql 2019 安装包,点击就安装,老手了,想来…

服务启动时报错:1053服务没有及时响应启动或控制请求

问题:替换dll文件后,自定义服务启动时报错:1053服务没有及时响应启动或控制请求 排查原因:可能是程序启动缺少某些dll文件 解决方案:1、使用depends依赖工具查看新增的dll文件是否缺少哪些dll文件,可以在c…

无法启动MySQL服务,错误1053:服务没有及时响应启动或控制请求

点此查看全部文字教程、视频教程、源代码 本文目录 1. 场景2. 思考3. 解决 1. 场景 正常使用MySQL,突然重启后无法运行,从windows服务里面启动提示如下: 2. 思考 为啥突然不能运行了,想想对电脑的操作,就是卸载了…

服务没有及时响应启动或控制请求

前几天把控制台项目弄成系统服务启动,但是出现上图的错误,服务一下子就停止运行了。 一开始以为是端口被占用,结果不是。 ①、出现这种错误一般是代码有问题,可以使用try catch 打印日志。 我当时问题是无法打印日志&#xff0…

Mysql启动 - 错误1053:服务没有及时响应启动或控制请求

Mysql启动 - 错误1053:服务没有及时响应启动或控制请求 在服务里启动MySQL时提示报错如下: 解决方法: 一、添加网络服务 1.为提高网络服务权限,需将网络服务添加到管理员组解决步骤 2.计算机->管理->本地用户和组->组 …

sql服务器没有及时响应或控制请求,Win7启动sql数据库提示“服务没有及时响应启动或控制请求”怎么办?...

最近有Win7用户反映,启动sql数据库的时候出现提示“服务没有及时响应启动或控制请求”,导致sql数据库启动失败,这让用户非常烦恼。那么,Win7启动sql数据库提示“服务没有及时响应启动或控制请求”怎么办呢?下面,我们一…

SQL Server 2019安装错误0x80004005 服务没有及时响应启动或控制请求详细解决方法

借三年半以来第一次彻底重装系统的契机,时隔很久写一篇软件安装文章。SQL Server 在我看来是 Windows 系统最难安装的软件,几乎没有之一。此前的系统是通过一次非彻底的重装系统成功安装了 SQL Server 2019,然而这次在系统完全纯净的情况下却…

安装SQL server出现“服务没有及时响应启动或控制请求”

安装SQL server出现“服务没有及时响应启动或控制请求” 环境说明解决方法补充内容安装下载地址删除数据库实例安装时Windows防火墙警告混合身份验证模式 捣鼓了一下午才把SQL server 安装了,花了最多时间的就是中途在安装过程中出现的“服务没有及时响应启动或控制…

错误1053:服务没有及时响应启动或控制请求

在做SCCM2012实验的时候,遇到SQL的报错“错误1053:服务没有及时响应启动或控制请求:”,如下图, 这种问题通常是由于不正确的超时设置导致的,请看如下解决方案, 单击开始,单击运行&am…