6、表联结 JOIN

news/2025/11/14 14:12:35/文章来源:https://www.cnblogs.com/chao-xiong/p/19221905

1、表联结 JOIN

用于关联多个表的核心操作,通过共同字段将数据组合,实现高效查询。

在一条 SELECT 语句中关联表,因此称为联结。使用特殊的语法,可以联结多个表返回一组输出,联结在运行时关联表中正确的行。

1)内连接(INNER JOIN)

返回两表中‌完全匹配‌的行,仅保留关联字段值相等的记录。

SELECT 列列表
FROM 表1
[INNER] JOIN 表2 ON 连接条件;

例子

-- 示例1:基本的员工-部门信息查询
SELECT e.employee_id,e.first_name,e.last_name,d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;-- 执行过程解析:
-- 1. 从employees表取出一条记录
-- 2. 根据department_id在departments表中查找匹配记录
-- 3. 如果找到匹配,将两条记录合并为一行输出
-- 4. 如果没有匹配,跳过该记录
-- 5. 重复以上过程直到处理完所有员工记录

2)外连接(OUTER JOIN)

(1)左连接(LEFT JOIN)‌

  • 返回左表所有记录 + 右表匹配记录

  • 结果集:左表全集 + 右表匹配部分,右表无匹配时显示NULL

适用于需保留左表完整数据(如所有客户信息)的场景‌

SELECT 列列表
FROM 表1
LEFT [OUTER] JOIN 表2 ON 连接条件;

例子

-- 示例1:查询所有员工及其部门信息(包括未分配部门的员工)
SELECT e.employee_id,e.first_name,e.last_name,COALESCE(d.department_name, '未分配部门') AS department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id;-- 结果分析:
-- 有部门的员工:显示部门名称
-- 无部门的员工:department_name显示为NULL,我们用COALESCE转换为'未分配部门'

‌(2)右连接(RIGHT JOIN)‌

  • 返回右表所有记录 + 左表匹配记录

  • 结果集:右表全集 + 左表匹配部分,左表无匹配时显示NULL。

使用场景:需要显示副表所有记录,即使主表没有对应数据

SELECT 列列表
FROM 表1
RIGHT [OUTER] JOIN 表2 ON 连接条件;

例子

-- 示例:查询所有部门及其员工信息(包括没有员工的部门)
SELECT d.department_name,e.employee_id,e.first_name,e.last_name
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id;-- 结果分析:
-- 有员工的部门:显示员工信息
-- 无员工的部门:员工相关列显示为NULL

(3)‌全连接(FULL JOIN)‌

  • 返回两个表的所有记录

  • 结果集:左表全集 + 右表全集,匹配部分合并,不匹配部分用NULL填充

  • 使用场景:需要同时查看两个表的完整信息及关联关系

SELECT 列列表
FROM 表1
FULL [OUTER] JOIN 表2 ON 连接条件;

例子

-- 示例:完整查看员工和项目的关联情况
SELECT COALESCE(e.employee_name, '无对应员工') AS employee_name,COALESCE(p.project_name, '无对应项目') AS project_name
FROM employees e
FULL OUTER JOIN project_assignments pa ON e.employee_id = pa.employee_id
FULL OUTER JOIN projects p ON pa.project_id = p.project_id;-- 结果可能包含:
-- 1. 有员工有项目:正常显示
-- 2. 有员工无项目:项目信息为NULL
-- 3. 无员工有项目:员工信息为NULL
-- 4. 孤立的分配记录:员工和项目都为NULL

(4)交叉连接(CROSS JOIN)

  • 返回两表的笛卡尔积,
  • 结果集:左表每行与右表所有行组合,无关联条件,结果行数为两表行数乘积。

-- 显式语法
SELECT 列列表
FROM 表1
CROSS JOIN 表2;-- 隐式语法
SELECT 列列表
FROM 表1, 表2;

例子

-- 示例1:生成所有员工和所有部门的组合
SELECT e.first_name,e.last_name,d.department_name
FROM employees e
CROSS JOIN departments d;-- 结果分析:
-- 如果employees有100人,departments有10个部门
-- 结果将产生100 × 10 = 1000条记录

(5)自连接 (Self Join)

  • 表与自身连接
  • 核心思想:是‌为同一张表创建多个别名‌,然后通过连接条件将这些别名关联起来‌
SELECT 列列表
FROM 表名 别名1
JOIN 表名 别名2 ON 连接条件;

例子

-- 示例1:员工-经理层级关系查询
SELECT emp.employee_id,emp.first_name AS employee_name,emp.job_title AS employee_title,mgr.employee_id AS manager_id,mgr.first_name AS manager_name,mgr.job_title AS manager_title
FROM employees emp
LEFT JOIN employees mgr ON emp.manager_id = mgr.employee_id;-- 执行过程解析:
-- 1. 将employees表视为两个独立的表:emp(员工表)和mgr(经理表)
-- 2. 通过emp.manager_id = mgr.employee_id建立关联
-- 3. 使用LEFT JOIN确保没有经理的员工也能显示

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/965361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

样式,草稿

```html <style> /* 深色笔记核心样式 */ details.note { margin: 1em 0; border-radius: 6px; overflow: hidden; background: #2d3436; transition: all 0.3s ease; } details.note:hover { box-shadow: 0 3px…

IDEA开发过程中Artifact和Maven有什么区别

在 IntelliJ IDEA 中,Artifact 和 Maven 是两个关联紧密但职责不同的概念:Maven 是项目构建工具,负责编译、依赖管理、打包(如生成 JAR/WAR) 等核心流程,通过 pom.xml 定义构建规则。 Artifact 是 IDEA 中的概念…

2025年电脑自动裁剪机供货商权威推荐榜单:卷布装置/电脑绗缝机/高速电脑裥棉机源头厂家精选

电脑自动裁剪机作为现代制造业中不可或缺的自动化设备,其市场需求正随着服装、皮革、纺织等行业对生产效率和精准度要求的提升而持续增长。本文将基于详实的行业数据,为您推荐2025年度在电脑自动裁剪机领域表现卓越的…

易基因:郑州大学第一附属医院孙同文教授团队利用表观多组学揭示二甲双胍通过DNA甲基化和羟甲基化双向调控减轻肝损伤的保护机制|项目文章

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 近日,郑州大学附属第一医院重症医学科刘峰宇博士和仝然博士为共同第一作者,孙同文教授为通讯作者,首次系统探讨了经典降糖药物二甲双胍(Metformi…

20232302 2025-2026-1《网络与系统攻防技术》实验五实验报告

1.实验内容 任务一:查询指定DNS与IP信息:查询baidu.comDNS注册人及联系方式,域名对应IP地址,IP地址注册人及联系方式,IP地址地理位置信息(要求使用WHOIS、dig、nslookup、traceroute/tracert、在线工具) 任务二…

CDN与域名ICP备案的关系浅谈

本文分享自天翼云开发者社区《CDN与域名ICP备案的关系浅谈》.作者:江****禄 本文介绍CDN与域名ICP备案的关系以及如何进行域名ICP备案。 一、CDN与域名ICP备案的关系 CDN与域名ICP(Internet Content Provider)备案之…

详细介绍:Linux----权限

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年11月有感

好久没来了,从北京回到老家保定,转眼间已经4年了。匆匆4年,一晃而过,今年2025年人生仿佛按下了快进键,恋爱,结婚,马上生子。工作也进入瓶颈进入长城汽车工作4年,3年末,工作中触发生产问题,被放权,被边缘,之…

kettle 从excel中读取需要同步的表到另一个数据库中

一、excel数据二、整体作业 三、获取需要同步的表 四、子作业五、获取变量并命名 六、获取表中的数据进行同步

安徽知名的商标注册:2025年专业服务机构权威评测

摘要 随着知识产权保护意识的提升,2025年商标注册行业迎来快速发展期。安徽省商标申请量年均增长25%,企业对专业商标服务的需求持续攀升。本文基于行业数据与用户口碑,对市面上主流商标注册服务机构进行综合评测,为…

2025年加粗鸽笼生产厂家权威推荐榜单:三层鸽笼/繁殖鸽笼/广式鸽笼源头厂家精选

在规模化、专业化养鸽成为趋势的2025年,一款优质的加粗鸽笼不仅是养殖设备,更是提升生产效率与管理水平的关键。 优质的养殖笼具对养鸽成功率至关重要。加粗鸽笼凭借其坚固耐用、设计科学的特点,已成为专业养殖场和…

小马算力暖冬特惠营:百万算力金 + 万元京东卡,11.12

亲爱的博客园朋友们,大家好! 同步一个超赞好消息:博客园会员权益活动有效期延长至 2026 年 1 月 31 日啦,新老用户在小马算力调用指定模型还能领取 200 算力金! 具体模型类型为qwen3-coder-480b deepseek-v3-0324…

2025 年 11 月断桥铝窗/门/系统窗/门窗/窗户厂家推荐排行榜,专业定制与节能性能口碑之选

2025 年 11 月断桥铝窗/门/系统窗/门窗/窗户厂家推荐排行榜,专业定制与节能性能口碑之选 随着建筑节能标准的不断提升和消费者对居住环境品质要求的提高,断桥铝门窗行业正迎来技术升级与产品创新的关键阶段。作为建筑…

2025年导向臂疲劳试验机定制厂家权威推荐榜单:电动疲劳试验机/封隔器疲劳试验机/疲劳检测设备源头厂家精选

导向臂疲劳试验机作为汽车、航空和工程机械行业中质量控制与产品研发的关键设备,其市场需求正随着工业制造领域对零部件可靠性要求的提升而持续增长。本文将基于行业数据,为您推荐2025年度在导向臂疲劳试验机定制领域…

用Python实现数字识别的简单AI应用

今天分享一个用Python写了一个能识别图片里文字的AI!不用任何现成的大模型,就靠最基础的代码。 这个简单的AI能做什么? 简单的说就是你画了一个简单的数字“8”,这个AI就能认出它是8!虽然它现在只能认0-9这10个数…

是的

是的一、半导体量测设备官方明确说明KLA Aleris 8000系列应用笔记《超薄膜量测的误差边界》 • 文档编号:AN-76543 Rev. C(KLA官网可下载) • 核心内容: ◦ 明确“当单次刻蚀厚度变化 < 设备最小可分辨厚度(Al…

CATIA 转换为 3DXML 全流程:迪威模型网在线转换和本地方转换方法指南 - 指南

CATIA 转换为 3DXML 全流程:迪威模型网在线转换和本地方转换方法指南 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

开源项目,全网音乐免费听,太牛逼啦,XiaoMusic 无限点歌机~~~~

嗨,我是小华同学,专注解锁高效工作与前沿AI工具!每日精选开源技术、实战技巧,助你省时50%、领先他人一步。👉免费订阅,与10万+技术人共享升级秘籍!XiaoMusic 是一个开源的“小爱音箱音乐增强方案”:在你的 NA…

Gitee Team:国产软件研发智能化转型的破局者

Gitee Team:国产软件研发智能化转型的破局者 在数字化转型浪潮席卷全球的当下,国产软件研发正经历着前所未有的智能化变革。作为国内领先的一站式研发管理平台,Gitee凭借其Team模块的创新设计,正在重新定义关键领域…

手把手教你部署智能合约 - all-in

什么是智能合约?智能合约,字面意思就是代码编写的合同。它是一组规则和规则指导下的数据的合体,相当于一个后端代码+数据库,只不过智能合约的代码和数据是部署在区块链上,任何人都可以查看。Remix 对初学者来说,…