MySQL——连接查询(2)内连接

news/2024/9/18 12:44:56/ 标签: mysql, 数据库

        内连接(Inner Join)又称简单连接或自然连接,是一种常见的连接查询。内连接使用比较运算符对两个表中的数据进行比较,并列出与连接条件匹配的数据行,组合成新的记录,也就是说在内连接查询中,只有满足条件的记录才能出现在查询结果中。内连接查询的语法格式如下所示:

SELECT 查询字段 FROM 表1 [INNER] JOIN 表2 0N 表1.关系字段=表2.关系字段

        在上述语法格式中,INNER JOIN 用于连接两个表,ON 来指定连接条件,其中INNER 可以省略。

        例如,在 department 表和 employee 表之间使用内连接查询,SQL 语句如下:

SELECT employee.name,department.dname FROM department JOIN employee ON department.did=employee.did;

        上述语句执行成功后,结果如下:

mysql> SELECT employee.name,department.dname FROM department JOIN employee ON department.did=employee.did;
+--------+-----------+
| name   | dname     |
+--------+-----------+
| 小红   | 网络部    |
| 小强   | 网络部    |
| 小明   | 媒体部    |
+--------+-----------+
3 rows in set (0.00 sec)

        从上述结果可以看出,只有 department.did 与 employee.did 相等的员工才会被显示。
在 MySQL 中,还可以使用 where 条件语句来实现同样的功能。

        例如,在 department 表和 employee 表之间使用 WHERE,SQL语句如下:

SELECT employee.name,department.dname FROM department,employee WHERE department.did=employee.did;

        上述语句执行成功后,结果如下:

mysql> SELECT employee.name,department.dname FROM department,employee WHERE department.did=employee.did;
+--------+-----------+
| name   | dname     |
+--------+-----------+
| 小红   | 网络部    |
| 小强   | 网络部    |
| 小明   | 媒体部    |
+--------+-----------+
3 rows in set (0.00 sec)

        从查询结果可以看出,使用 WHERE 子句的查询结果与使用INNER JOIN 的查询“果是一致的。需要注意的是,这两个语句的查询结果虽然相同,但是INNER JOIN 是的莲接语句,WHERE 是条件判断语句,在 WHERE 语句后可以直接添加其他条件,而NNER JOIN 语句不可以。

        如果在一个连接查询中,涉及的两个表是同一个表,这种查询称为自连接查询。自"接是一种特殊的内连接,它是指相互连接的表在物理上为同一个表,但逻辑上分为两表,例如要查询小红所在的部门有哪些员工,就可以使用自连接查询。

        例如,在 department 表和 employee 表之间使用自连接查询,SQL语句如下:

SELECT p1.* FROM employee p1 JOIN employee p2 ON p1.did=p2.did WHERE p2.name='小红';

        上述语句执行成功后,结果如下:

mysql> SELECT p1.* FROM employee p1 JOIN employee p2 ON p1.did=p2.did WHERE p2.name='小红';
+----+--------+------+-----+
| id | name   | age  | did |
+----+--------+------+-----+
|  1 | 小红   |   20 |   1 |
|  2 | 小强   |   22 |   1 |
+----+--------+------+-----+
2 rows in set (0.00 sec)

        从查询结果可以看出,王红所在的部门有两个员工,分别是小红和小强。


http://www.ppmy.cn/news/1515999.html

相关文章

苍穹外卖-day05(SpringBoot+SSM的企业级Java项目实战)

苍穹外卖-day05 课程内容 Redis入门 Redis数据类型 Redis常用命令 在Java中操作Redis 店铺营业状态设置 功能实现:营业状态设置 效果图: 选择营业中,客户可在小程序端下单: 选择打烊中,客户无法在小程序端下单&…

Azure DevOps Service 超出使用限制

1. 概述 Azure DevOps Service是微软公司软件开发运维一体化的云服务产品;作为一款为IT团队提供应用软件生命周期管理的云服务器产品,服务器中存储了大量的研发数据,包括需求、缺陷、源代码、测试用例和持续集成等各种数据;随着企…

设计模式-创建型模式-原型模式

1.原型模式定义 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象; 1.1 原型模式优缺点 优点 当创建一个新的对象实例较为复杂时,使用原型模式可以简化对象的创建过程,通过复制一个已有的实例…

关闭IDEA启动画面

新版IDEA启动时启动画面居中且无法最小化,所以想把它给隐藏掉。(此操作不会加快启动速度) 在快捷方式后加入参数 nosplash,记得有个空格。

【Python脚本】爬取网络小说

原文链接:https://www.cnblogs.com/aksoam/p/18378309 作为重度小说爱好者, 小说下载网站经常被打击,比如:笔趣阁,奇书网,爱书网,80电子书.这些网站的下载链接经常会失效, 所以, 我想自己动手写一个爬虫程序, 抓取网络小说, 并下载到本地. 给出两种思路的python脚…

ShareSDK 企业微信

本篇文档主要讲解如何使用企业微信并进行分享和授权。 创建应用 登录企业微信并通过企业认证。选择应用管理 > 应用 >创建应用。编辑应用信息。配置授权登录信息。 以下为创建过程示例,图中信息仅为示例,创建时请按照真实信息填写,否…

紧跟大模型技术趋势,为更大更通用的大模型提供底层支撑!关于智能计算系统:从深度学习到大模型,全新版本,发布!

文章目录 📋前言🎯 关于智能计算系统🎯 内容简介🎯 作者简介🎯 专家推荐🎯 目录大纲🔥 参与方式 📋前言 “只要你想把大模型做得更好、做得更大、做得更快、做得更省电,…

如何正确使用static、class、abstract方法二

如何正确使用static、class、abstract方法 ####How methods work in Python A method is a function that is stored as a class attribute. You can declare and access such a function this way: ####方法在Python中是如何工作的 方法就是一个函数,它作为一个类…

膨胀罐的安装注意事项

1、膨胀罐在热力系统中如空调、锅炉、热泵等一般安装在系统的回水端; 2、膨胀罐在供水系统一般装在水泵的出口。 3、膨胀罐在太阳能承压循环系统中一般安装在水泵的进口附近。 膨胀罐的原理: 当外界有压力的水进入膨胀罐气囊内时,密封在罐内的…

【C#】【EXCEL】Bumblebee/Classes/ExGraphic.cs

Bumblebee/Classes/ExGraphic.cs Flow diagram 根据您提供的代码和要求,我将创建一个流程图来展示ExGraphic类的结构。这个流程图将使用中英双语标注,并对应到代码中的英文。 #mermaid-svg-TRwsnkAxI5mhmCmk {font-family:"trebuchet ms",ve…

数学建模学习(118):牛顿冷却定律的原理解析、案例分析与Python求解

介绍来源:2020全国大学生数学建模竞赛论文展示(A070) ,这里我们详细完整的对该优秀论文的方法进行学习和实践。 文章目录 1. 牛顿冷却定律的定义2. 牛顿冷却定律公式3. 牛顿冷却定律的推导4. 牛顿冷却定律的应用方法5. 牛顿冷却定律的验证6. 牛顿冷却定律的图形7. 案例一7.…

建筑楼宇电气安全与能效管理

随着建筑业的发展,配电系统在楼宇建筑特别是高层建筑中的比重也随之加大。现代的建筑的功能越来越完善,变配电工程、空调工程、机电工程、电梯工程、消防工程等工程设施设备与建筑体相结合,敷设的电气线路变得更为复杂,火灾隐患明…

使用Dotween制作按钮弹性动画效果

效果: 方式: 优点,不需要写任何代码、稳定、可自定义效果

AutoGPT开源项目解读

AutoGPT开源项目解读 (qq.com) AutoGPT旨在创建一个自动化的自我改进系统,能够自主执行和学习各种任务 项目基本信息 首先阅读项目的README.md,下述代理和智能体两个名词可互换 项目简介:一个创建和运行智能体的工具,这些智能体…

C++的模板

文章目录 教学一1. 函数模板定义和使用注意事项 2. 类模板定义和使用注意事项 3. 模板特化全特化偏特化 4. 模板参数非类型参数模板模板参数 5. SFINAE(Substitution Failure Is Not An Error)示例 6. 模板的高级特性6.1 变长模板参数包(Vari…

【解决问题】linux系统运行程序可以打印信息到屏幕,重定向到一个文件,文件中没有信息

在Linux系统中运行程序时,如果你发现程序打印的信息无法通过重定向写入到文件中,那么很可能是因为程序将信息打印到了标准错误流(stderr),而不是标准输出流(stdout)。重定向操作通常只对标准输出…

变声器免费的直接说话的那种!不整虚的,一键变声!好听!

听说网络上一堆推荐软件测评的,一半斗志推销自己家的软件,好不好用其次,关键是名声已经在外!今天俺老孙也不整这些虚的,直接上干货,测评2024最新的电脑变声软件,帮助大家了解这六款国内外不同系…

OpenCV几何图像变换(6)计算反转仿射变换函数invertAffineTransform()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 反转一个仿射变换。 该函数计算由 23 矩阵 M 表示的逆仿射变换: [ a 11 a 12 b 1 a 21 a 22 b 2 ] \begin{bmatrix} a_{11} & a…

接口如何设计

在企业中,前后端分离开发是一种常见的开发模式。在这种模式下,Java 程序员通常负责设计和实现后端 API 接口,而前端工程师则根据这些接口来开发用户界面和功能。 首先明确该接口是一个前后端交互接口,该接口由前端通过HTTP协议进…

第2章 C语言基础知识

第2章 C语言基础知识 1.printf()函数 在控制台输出数据,需要使用输出函数,C语言常用的输出函数为printf()。 printf()函数为格式化输出函数,其功能是按照用户指定的格式将数据输出到屏幕上。 printf(“格式控制字符串”,[输出列表]); 格式控…