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

MySQL——多表操作(三)连接查询(2)内连接

        内连接(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)

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深入理解 Go 语言并发编程底层原理
  • TCP、HTTP以及RPC的梳理
  • 有关Prompt Engineering(提示词工程)的一些总结
  • 低代码门户技术:赋能业务灵活性与创新的新时代
  • go 开发小技巧
  • 解决Spring Boot中Druid连接池“discard long time none received connection“警告
  • Unity(2022.3.41LTS) - 地形
  • 口语笔记——虚拟语气
  • 智慧灯塔,照亮企业AI Agent实施明路
  • MYSQL:简述对B树和B+树的认识
  • 使用maven搭建微服务框架
  • 基于七牛云上传,下载文件
  • 【数据库】两个集群数据实现同步方案
  • Node.js-身份证号实名认证-小程序实名认证接口集成方法
  • C语言中的预处理器字符串化与拼接操作符:底层原理及实现细节
  • 2017 前端面试准备 - 收藏集 - 掘金
  • angular组件开发
  • CSS中外联样式表代表的含义
  • Date型的使用
  • django开发-定时任务的使用
  • ECS应用管理最佳实践
  • gf框架之分页模块(五) - 自定义分页
  • httpie使用详解
  • iOS 系统授权开发
  • Meteor的表单提交:Form
  • vue2.0项目引入element-ui
  • vue-router 实现分析
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 构造函数(constructor)与原型链(prototype)关系
  • 后端_MYSQL
  • 首页查询功能的一次实现过程
  • 消息队列系列二(IOT中消息队列的应用)
  • 写代码的正确姿势
  • 自制字幕遮挡器
  • nb
  • # .NET Framework中使用命名管道进行进程间通信
  • #### go map 底层结构 ####
  • #ifdef 的技巧用法
  • #微信小程序:微信小程序常见的配置传值
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (1)常见O(n^2)排序算法解析
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Python) SOAP Web Service (HTTP POST)
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (规划)24届春招和25届暑假实习路线准备规划
  • (过滤器)Filter和(监听器)listener
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)【Hibernate总结系列】使用举例
  • (转)创业家杂志:UCWEB天使第一步
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (转载)hibernate缓存
  • .md即markdown文件的基本常用编写语法