当前位置: 首页 > news >正文

数据库表的关联、集合操作

数据库表的关联、集合操作

join、MySQL、Oracle

什么left right的老是忘,归根到底还是不熟练,记录下来,以后就不用再搜了。

设表A、表B分别包含员工信息和部门信息。

表A包含员工的ID、姓名和部门ID,
表B包含部门ID和部门名称。

(Inner) Join 内连接

返回两个表中满足连接条件的记录。如果两个表中没有匹配的记录,则不会返回任何结果。
inner join 和 join 等价。

SELECT A.ID, A.Name, B.DepartmentName
FROM TableA AINNER JOIN TableB B ON A.DepartmentID = B.DepartmentID;

在两个字段同名的情况下,这个sql可以使用using进一步简化:

SELECT A.ID, A.Name, B.DepartmentName
FROM TableA AINNER JOIN TableB B USING (DepartmentID);

若两表只有一对同名字段,则可以进一步简化(使用自然连接):

SELECT A.ID, A.Name, B.DepartmentName
FROM TableA ANATURAL JOIN TableB B;

返回表A中员工的ID和姓名,以及他们所在的部门名称,只返回满足连接条件的记录。

Left Join 左连接

等效 left outer join ,outer可省略

返回左表中所有的记录,以及与右表中满足连接条件的记录。如果右表中没有匹配的记录,则返回NULL值。

SELECT A.ID, A.Name, B.DepartmentName
FROM TableA ALEFT JOIN TableB B ON A.DepartmentID = B.DepartmentID;

返回表A中员工的ID和姓名,以及他们所在的部门名称,如果有员工所在的部门在表B中没有对应的部门记录,那么部门名称将显示为NULL值。

Right Join 右连接

等效 right outer join ,outer可省略

返回右表中所有的记录,以及与左表中满足连接条件的记录。如果左表中没有匹配的记录,则返回NULL值。

SELECT A.ID, A.Name, B.DepartmentName
FROM TableA ARIGHT JOIN TableB B ON A.DepartmentID = B.DepartmentID;

返回表B中的部门ID和部门名称,以及该部门下的员工信息,如果有部门在表A中没有员工记录,那么员工ID和姓名将显示为NULL值。

全外连接

在 Oracle 中可以使用Full Outer Join,等效full join,outer可省略:

SELECT A.ID, A.Name, B.DepartmentName
FROM TableA AFULL OUTER JOIN TableB B ON A.DepartmentID = B.DepartmentID;

返回所有员工和所有部门信息,员工无部门其部门显示NULL,部门无员工其员工显示NULL

解决MySQL中不支持全外连接的办法:

将左外连接和右外连接中间利用union取并集(去重,执行效率低):

SELECT A.ID, A.Name, B.DepartmentName
FROM TableA ALEFT JOIN TableB B ON A.DepartmentID = B.DepartmentID
UNION 
SELECT A.ID, A.Name, B.DepartmentName
FROM TableA ARIGHT JOIN TableB B ON A.DepartmentID = B.DepartmentID;

或可利用union all取并集(不去重,执行效率高):

SELECT A.ID, A.Name, B.DepartmentName
FROM TableA ALEFT JOIN TableB B ON A.DepartmentID = B.DepartmentID
UNION ALL
SELECT A.ID, A.Name, B.DepartmentName
FROM TableA ARIGHT JOIN TableB B ON A.DepartmentID = B.DepartmentID;

集合操作

MySQL只支持并集,交、差不支持;

Oracle支持并、交、差。

三表查询

自连接查询

以上是99语法

92语法

交叉连接

两表中间使用逗号分隔,表示两表笛卡尔积,然后利用where条件筛选。

  1. 92语法更简单但使用繁琐,无特性关键词(个人感觉可以理解为一种语法糖)
  2. 92语法的 表的连接条件 和 筛选条件 没有分开
  3. 99语法提供了更多查询连接类型,使用和表达上更为简洁,但语法体系更为冗杂

声明:本文使用八爪鱼rpa工具从gitee自动搬运本人原创(或摘录,会备注出处)博客,如版式错乱请评论私信,如情况紧急或久未回复请致邮 xkm.0jiejie0@qq.com 并备注原委;引用本人笔记的链接正常情况下均可访问,如打不开请查看该链接末尾的笔记标题(右击链接文本,点击 复制链接地址,在文本编辑工具粘贴查看,也可在搜索框粘贴后直接编辑然后搜索),在本人博客手动搜索该标题即可;如遇任何问题,或有更佳方案,欢迎与我沟通!

相关文章:

数据库表的关联、集合操作

数据库表的关联、集合操作 join、MySQL、Oracle什么left right的老是忘,归根到底还是不熟练,记录下来,以后就不用再搜了。 设表A、表B分别包含员工信息和部门信息。 表A包含员工的ID、姓名和部门ID, 表B包含部门ID和部门名称。 …...

word怎么清除格式,Word一键清除所有格式教程

你是否曾在编辑Word文档时遇到过复制内容时格式混乱的情况?别担心,这只需要清除一下格式就可以了,很多朋友还不知道word怎么清除格式,下面小编就来给大家讲一讲word一键清除所有格式的方法教程,操作非常简单,有需要的…...

ShardingProxy服务端分库分表

目录 一、为什么要有服务端分库分表? 二、ShardingProxy基础使用 1、部署ShardingProxy 2、配置常用分库分表策略 三、ShardingSphere中的分布式事务机制 1、什么是XA事务? 2、实战理解XA事务 3、如何在ShardingProxy中使用另外两种事务管理器&a…...

开源的 FOC(Field-Oriented Control) 项目

开源的 FOC(Field-Oriented Control) 项目通常用于控制无刷直流电机(BLDC)和永磁同步电机(PMSM)。这些项目可以实现高效的电机控制,广泛应用于机器人、无人机、电动车等领域。以下是一些著名的开…...

高等数学 5.5 反常积分的审敛法 Γ函数

文章目录 一、无穷限反常积分的审敛法二、无界函数的反常积分审敛法三、 Γ \Gamma Γ 函数 一、无穷限反常积分的审敛法 定理1 设函数 f ( x ) f(x) f(x) 在区间 [ a , ∞ ) [a, \infty) [a,∞) 上连续,且 f ( x ) ⩾ 0 f(x) \geqslant 0 f(x)⩾0.若函数 F (…...

宝塔安装ffmpeg的方法

宝塔安装ffmpeg的方法 wget http://download.bt.cn/install/ext/ffmpeg.sh && sh ffmpeg.sh安装完后可输入以下命令是否安装成功: ffmpeg -version...

案例分享-优秀蓝色系UI界面赏析

蓝色UI设计界面要提升舒适度,关键在于色彩搭配与对比度。选择柔和的蓝色调作为主色,搭配浅灰或白色作为辅助色,能营造清新、宁静的氛围。同时,确保文字与背景之间有足够的对比度,避免视觉疲劳,提升阅读体验…...

陪诊小程序之uniapp(从入门到精通)

1.uniapp如何使用vue3编写页面 <template><view class"content"><navbar name"navbar组件"></navbar><image class"logo" src"/static/logo.png"></image><view class"text-area"&…...

深度学习(一)基础:神经网络、训练过程与激活函数(1/10)

深度学习基础&#xff1a;神经网络、训练过程与激活函数 引言&#xff1a; 深度学习作为机器学习的一个子领域&#xff0c;近年来在人工智能的发展中扮演了举足轻重的角色。它通过模仿人脑的神经网络结构&#xff0c;使得计算机能够从数据中学习复杂的模式和特征&#xff0c;…...

源代码加密技术的一大新方向!

在当今这个信息爆炸的时代&#xff0c;企业所面临的数据安全挑战日益严峻。传统的文档加密方法已经无法满足日益复杂的安全需求。幸运的是&#xff0c;SDC沙盒加密系统以其革命性的安全理念和先进技术&#xff0c;为企业提供了一个更可靠、更高效的数据保护方案。 传统加密方案…...

SVN——常见问题

基本操作 检出 提交 更新 显示日志 撤销本地修改 撤销已提交内容 恢复到指定版本 添加忽略 修改同一行 修改二进制文件...

JavaCV 图像灰度化处理

&#x1f9d1; 博主简介&#xff1a;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;…...

基于Multisim三极管B放大系数放大倍数测量电路设计(含仿真和报告)

【全套资料.zip】三极管B放大系数放大倍数测量电路电路设计Multisim仿真设计数字电子技术 文章目录 功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真报告讲解视频.zip】 功能 1.用三个数码管显示B的大小&#xff0c;分别显示个位、十位和百位。 2.显示范围…...

Molmo模型实战

安装pip文件 conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=11.8 -c pytorch -c nvidiapip install ...

免费开源的微信开发框架

近年来&#xff0c;随着人工智能技术的快速发展&#xff0c;聊天机器人在各个领域得到了广泛的应用。在社交媒体中&#xff0c;自动回复成为了一个流行的功能&#xff0c;让用户可以方便地与机器人进行互动。gewe框架&#xff0c;一个开源的微信聊天机器人框架&#xff0c;实现…...

波形的变化和信号的产生1+multisim仿真

目录 1.正弦波振荡电路 1.1RC正弦波振荡电路 1.1.1RC串并联选频网络 1.1.2RC桥式正弦波振荡电路 1.1.4LC正弦波振荡电路 1.1.3石英晶体正弦波振荡电路 2.电压比较器 2.1概述 2.1.1基本概念 2.2电压比较器的种类 2.2.1过零比较器 2.2.2一般单限比较器 2.2.3滞回比较…...

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(3)

1.问题描述&#xff1a; compatibleSdkVersion升级到5.0.0&#xff08;12&#xff09;之后&#xff0c;调用坐标系转换API&#xff1a;map.convertCoordinate(mapCommon.CoordinateType.WGS84, mapCommon.CoordinateType.GCJ02, { longitude: location.longitude, latitude:…...

电脑微信多开方法,保姆级教学,超简单!

文章目录 前言方法教学 前言 大家在日常生活中一般都会有多个微信号或QQ号&#xff0c;但大部分人只有一部手机和一台电脑&#xff0c;这就导致每次都需要来回切换不同的账号&#xff0c;非常麻烦&#xff1b;QQ还好&#xff0c;在电脑上可以登陆多个账号&#xff0c;但微信只能…...

【Mysql】-锁,行级锁

Mysql mysql中的行锁 在 MySQL 的 InnoDB 存储引擎中&#xff0c;行级锁通常是加在索引上的&#xff0c;而不是直接加在数据行上。这种机制是基于索引的锁定策略&#xff0c;具体来说&#xff1a; 主键索引&#xff1a;如果查询更新使用了主键进行查找&#xff0c;InnoDB 会直…...

手机功耗技术领域

手机功耗技术领域 器件 器件-电池 提升电池能量密度 提升正极电压、升级负极材料正极电压方面&#xff0c;目前行业还是以4.5V体系为主&#xff1b;4.53V体系预计24-25年落地&#xff1b;负极材料方面&#xff0c;石墨体系每年2%能量密度提升迭代&#xff1b; 掺硅方案目前…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

云原生安全实战:API网关Envoy的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口&#xff0c;负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...

深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学

一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件&#xff0c;其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时&#xff0c;价带电子受激发跃迁至导带&#xff0c;形成电子-空穴对&#xff0c;导致材料电导率显著提升。…...

嵌入式面试常问问题

以下内容面向嵌入式/系统方向的初学者与面试备考者,全面梳理了以下几大板块,并在每个板块末尾列出常见的面试问答思路,帮助你既能夯实基础,又能应对面试挑战。 一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责…...

运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.

报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符&#xff0c;最后运行&#xff1a;npm run lint --fix...

JUC并发编程(二)Monitor/自旋/轻量级/锁膨胀/wait/notify/锁消除

目录 一 基础 1 概念 2 卖票问题 3 转账问题 二 锁机制与优化策略 0 Monitor 1 轻量级锁 2 锁膨胀 3 自旋 4 偏向锁 5 锁消除 6 wait /notify 7 sleep与wait的对比 8 join原理 一 基础 1 概念 临界区 一段代码块内如果存在对共享资源的多线程读写操作&#xf…...