【重学 MySQL】二十五、等值连接vs非等值连接、自连接vs非自连接
【重学 MySQL】二十五、等值连接vs非等值连接、自连接vs非自连接
- 等值连接(Equijoin) vs 非等值连接(Non-equijoin)
- 等值连接(Equijoin)
- 非等值连接(Non-equijoin)
- 自连接(Self-join) vs 非自连接(Non-self-join)
- 自连接(Self-join)
- 非自连接(Non-self-join)
- 总结

在MySQL中,连接(JOIN)是处理多个表之间关系的一种非常强大的工具。根据连接的类型和条件,连接可以分为多种不同的形式,其中最常见的区分包括等值连接与非等值连接、自连接与非自连接。
等值连接(Equijoin) vs 非等值连接(Non-equijoin)
等值连接(Equijoin)
等值连接是最常见的连接类型,它基于两个表之间的相等条件来连接记录。这通常意味着连接条件中的两个字段通过等于(=)操作符进行比较。
示例SQL:
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
在这个例子中,Orders表和Customers表通过CustomerID字段进行了等值连接。
非等值连接(Non-equijoin)
非等值连接则不使用等于(=)操作符来比较字段,而是可能使用其他比较操作符(如>、<、>=、<=、<>等)或者不使用任何直接的字段比较,而是通过表达式或函数来连接两个表。
示例SQL(使用BETWEEN操作符):
SELECT Orders.OrderID, Products.ProductName
FROM Orders
INNER JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID
INNER JOIN Products ON OrderDetails.ProductID BETWEEN Products.MinProductID AND Products.MaxProductID;
在这个例子中,OrderDetails表和Products表之间的连接是基于一个非等值条件,即OrderDetails.ProductID位于Products表的MinProductID和MaxProductID之间。
自连接(Self-join) vs 非自连接(Non-self-join)
自连接(Self-join)
自连接是指表与其自身进行的连接。这种连接通常用于处理表中具有层级或树状结构的数据,例如,员工表可能包含员工ID和上级员工ID,这时可以通过自连接来查询每个员工的上级。
示例SQL:
SELECT e1.EmployeeID AS Employee, e1.Name AS EmployeeName, e2.Name AS ManagerName
FROM Employees e1
INNER JOIN Employees e2 ON e1.ManagerID = e2.EmployeeID;
在这个例子中,Employees表与其自身进行了连接,以找出每个员工的上级。
非自连接(Non-self-join)
非自连接是指表与其他不同的表进行的连接。这是最常见的连接形式,用于处理两个或多个不相关的表之间的数据关系。
示例SQL(如上文的等值连接示例):
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
在这个例子中,Orders表和Customers表是两个不同的表,它们之间通过CustomerID进行了连接。
总结
等值连接与非等值连接的区别在于连接条件中使用的操作符类型,而自连接与非自连接的区别则在于连接是否在同一表内进行。理解这些不同类型的连接对于处理复杂的数据库查询至关重要。
相关文章:
【重学 MySQL】二十五、等值连接vs非等值连接、自连接vs非自连接
【重学 MySQL】二十五、等值连接vs非等值连接、自连接vs非自连接 等值连接(Equijoin) vs 非等值连接(Non-equijoin)等值连接(Equijoin)非等值连接(Non-equijoin) 自连接(…...
Springboot工程配置https访问
背景 因为前端工程使用nginx配置了https访问,在https直接请求我们Springboot后端的http接口会报错。那么我们就需要配置使得我们后端的springboot服务支持https访问。 证书生成 在配置springboot工程https之前,我们需要生成自签名证书以及Spring Boot…...
智慧水务建设的核心内容
智慧水务解决方案的主要对象客户是全国各地水务投资集团、水务局、水司、水厂、农水办,也会有少量项目涉及到住建局或城管局。解决方案通常会以具体的某个业务单位的职能工作为切入点,配合物联感知、大数据分析、人工智能等技术手段,为城市供水、乡村供水的水质安全、供水调…...
opencv之图像轮廓
文章目录 前言查找并绘制轮廓查找图像轮廓:findContours函数绘制图像轮廓:drawContours函数轮廓实例 矩特征Hu矩Hu矩函数形状匹配 前言 图像轮廓指的是图像中物体边缘或形状的外部线条,通常通过图像处理技术来检测和提取。轮廓是用于描述物体…...
shader 案例学习笔记之step函数
step函数 参数是float step(edge,x):当x>edge时返回1,否则返回0 #ifdef GL_ES precision mediump float; #endifuniform vec2 u_resolution;void main(){vec2 st gl_FragCoord.xy/u_resolution.xy;float f step(0.5, st.x);gl_FragColor vec4(f…...
node快速复制文件或文件夹,排除部分文件(node_modules)
const fs require(fs) const path require(path)/*** description: 获取完整的文件路径* param {*} url 路径* return {*} 返回完整的文件路径*/ const getPath (url) > {return path.join(__dirname, url) }/*** description: 获取参数* return {*} target【目标文件夹】…...
网络层 VIII(网络层设备——路由器)【★★★★★★】
一、冲突域与广播域 这里的“域”表示冲突或广播在其中发生并传播的区域。 1. 冲突域 冲突域是指连接到同一物理介质上的所有结点的集合,这些结点之间存在介质争用的现象(能产生冲突的所有设备的集合)。也就是说,若这些设备同时发…...
302.AI学术论文搜索工具的智能体验
Hey朋友们, 你是否曾在学术的海洋里迷失方向,为了找到一篇论文而苦苦挣扎? 就像在茫茫大海中寻找灯塔,我们渴望一盏明灯,指引我们前行。 别担心,今天我来给你介绍一个超级给力的工具——302.AI学术论文…...
arm平台常用工具和动态库编译
目录 perf 交叉编译交叉编译zlib交叉编译 elfutils交叉编译 perfperf 使用 libconfig 交叉编译openssl 交叉编译libpcap 交叉编译统信、龙芯等平台编译QT交叉编译编译QT源码编译QtCreator 编译ssl编译libsrtp(2.3.0版本)编译libyuvlibopus编译libopenh264编译libusrsctp编译lib…...
代码随想录训练营day45|115.不同的子序列,583. 两个字符串的删除操作,72. 编辑距离
115.不同的子序列 题目 dp[i][j]表示的是在以是s[j]为结尾的字符串中最多可以找到几种组成以t[i]为结尾的字符串的方式。 如果s[i]t[j], 1.利用第i个和第j个匹配,在j-1中寻找i-1. 2.不适用这两个进行匹配,在j-1中寻找i 如果s[i]!…...
椋鸟C++笔记#7:标准模板库STL初识
文章目录 标准模板库(Standard Template Library)STL的版本P.J.版RW版SGI版 STL的组成部分 萌新的学习笔记,写错了恳请斧正。 标准模板库(Standard Template Library) 标准模板库STL,是C标准库的一个非常重…...
滴滴嘀嗒,出行行业响起Robotaxi“倒计时”
文:互联网江湖 作者:刘致呈 前几天,各大出行平台的半年报陆续披露完毕,有的还在亏损,但也有人开始盈利。 如祺出行上市后的首份半年报营收10.37亿,同比增长13.6%。上半年运营亏损为2.56亿元,同…...
【MATLAB源码-第264期】基于matlab的跳频通信系统仿真,采用MSK调制方式,差分解调;输出误码率曲线和各节点波形图。
操作环境: MATLAB 2022a 1、算法描述 跳频通信系统是一种能够提高通信抗干扰能力的技术,它通过在传输过程中不断地改变载波频率来避开干扰或者窃听。在这套跳频通信系统中,我们采用了最小频移键控(MSK)作为调制方式…...
如何在多台电脑上同步 VSCode配置和插件
上一篇文章最新前端开发VSCode高效实用插件推荐清单总结了前端开发实用的插件,换电脑的时候怎么同步这些配置与插件呢,难道又要重新安装一遍吗😱 现在就来聊聊要在多台电脑上同步 VSCode配置和插件的几种方法: 方法一࿱…...
深度优先算法,广度优先算法,hill climbing,贪心搜索,A*算法,启发式搜索算法是什么,比起一般搜索法算法有什么区别
深度优先算法(Depth-First Search, DFS) 深度优先搜索是一种用于遍历或搜索树或图的算法。它沿着树的深度遍历树的节点,尽可能深地搜索树的分支。当节点v的所在边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程…...
《python语言程序设计》2018版第8章第14题金融:信用卡号合法性 利用6.29题
一、之前6.29题我做的代码 这是用数字来进行分辨的 is_txt 4383576018402626 #合法def split_the_data_even(vis_n):current_a1 vis_n // 10000a_t1 vis_n % 10000# print("1th", a_t1)a_t2 current_a1 % 10000# print("2th", a_t2)current_a3 curre…...
QT 基础学习
1> 使用绘制事件完成钟表的绘制 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QDebug> #include <QTime> #include <QTimer> #include <QDateTime> //#include <string> #includ…...
【Gephi】可视化教程
此教程专供欣欣向荣及其舍友使用 文章目录 导入数据上色改变布局设置节点大小统计拓扑结构输出图形保存文件 导入数据 点击【文件】-【导入电子表格】 先选择csv格式的network 直接下一步 点击完成 【图的类型】改为“有向的” 点击确认 会弹出报错,直接clos…...
演化式原型开发-系统架构师(六十五)
1快速迭代式的原型开发能够有效控制成本,()是指开发过程中逐步改进和细化原型直到产生目标系统。 A可视化原型开发 B抛弃式原型开发 C演化式原型开发 D增量式原型开发 解析: 原型开发分为两大类:快速原型开发(抛弃…...
初识爬虫4
1.理解代理ip,正向代理和反向代理 2.代理ip分类,根据匿名度分类:透明,匿名,高匿 3.防止频繁向同一个域名发送请求被封ip,需使用代理ip # -*- coding: utf-8 -*- import requestsurl https://www.baidu.comproxies {…...
Scandit Barcode Scanner:这家瑞士公司的SDK,如何让淘宝、京东的扫码快人一步?
Scandit Barcode Scanner:解码瑞士技术如何重塑全球扫码体验 在移动互联网时代,扫码已成为连接物理世界与数字世界的无形桥梁。从超市收银台到物流仓库,从零售门店到电商平台,条码扫描技术默默支撑着现代商业的高效运转。而在这背…...
Newbie-Guideline数据库实战:SQL查询与ER模型设计的完整教程
Newbie-Guideline数据库实战:SQL查询与ER模型设计的完整教程 【免费下载链接】Newbie-Guideline 컴퓨터과학/공학 신입생 및 비전공자 신입을 위한 지침서 项目地址: https://gitcode.com/gh_mirrors/ne/Newbie-Guideline Newbie-Guideline是面向计算机科学/…...
终极Windows和Office激活指南:KMS智能激活工具三步永久激活方案
终极Windows和Office激活指南:KMS智能激活工具三步永久激活方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office突然变…...
【紧急预警】Perplexity即将下线v1历史索引接口(倒计时≤45天):迁移至Time-Aware Search API的6步合规过渡方案
更多请点击: https://kaifayun.com 第一章:Perplexity历史资料搜索 Perplexity 是一款以实时网络检索与引用驱动为特色的 AI 搜索工具,自 2022 年由 Aravind Srinivas、Denis Yarats、Johnny Ho 和 Andy Konwinski 共同创立以来,…...
别只盯着波特率!深入理解英飞凌MCMCAN的报文过滤与优先级处理机制
别只盯着波特率!深入理解英飞凌MCMCAN的报文过滤与优先级处理机制 在嵌入式系统开发中,CAN总线通信的稳定性和效率往往决定了整个系统的性能表现。许多工程师在配置CAN模块时,常常将注意力集中在波特率设置等基础参数上,却忽略了报…...
免费开源乐谱识别神器Audiveris:三步将纸质乐谱转为数字格式
免费开源乐谱识别神器Audiveris:三步将纸质乐谱转为数字格式 【免费下载链接】audiveris Latest generation of Audiveris OMR engine 项目地址: https://gitcode.com/gh_mirrors/au/audiveris 你是否曾面对一叠纸质乐谱,渴望将它们转换成可编辑的…...
OpenClaw 接入 DeepSeek 模型完整配置教程(2026 最新版)
OpenClaw 接入 DeepSeek 模型完整配置教程 一、前置准备 已安装并正常运行 OpenClaw Windows 客户端;OpenClaw 顶部 Gateway 状态保持在线;电脑网络正常,可稳定访问 DeepSeek 开放平台;准备可接收验证码的手机号或微信账号&…...
如何快速提高能力
人机协作,AI模型:Deepseek仅供参考如何快速提高能力在快节奏的现代社会中,每个人都渴望快速提升自己的能力,无论是职场竞争力、专业技能,还是通用素养。能力的提升并非一蹴而就,但遵循科学有效的方法&#…...
不止于解题:聊聊猪圈密码、圣堂武士密码和标准银河字母背后的历史与趣闻
不止于解题:猪圈密码、圣堂武士密码与标准银河字母的文化考古 当你在CTF竞赛中第一次遇到那些神秘的几何符号时,是否曾好奇过这些图形背后的故事?从共济会的秘密集会到《我的世界》游戏中的彩蛋,图形密码早已超越了单纯的加密工具…...
手把手教你打造个人语音锁:基于PyTorch声纹识别项目,从环境搭建到GUI应用部署全流程
从零构建智能声纹锁:PyTorch工程化实战指南 当生物识别技术逐渐渗透日常生活,声纹识别正以其非接触、高便捷的特性成为身份认证的新宠。不同于指纹或人脸识别需要专用硬件支持,声纹识别仅需普通麦克风即可实现高精度身份验证。本文将带您完整…...
