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

MySQL数据库专栏(九)内联查询

1、内联查询概述

MySQL中的内联查询(Inner Join)是一种SQL查询操作,用于结合两个或多个表中的行。当两个表通过共同的字段(通常是外键和主键)相关联时,内联查询会返回这些表中所有匹配的行。如果在一个表中存在与另一个表连接条件不匹配的行,那么这些行就不会出现在查询结果中。

2、应用说明及准备

在实际开发中,我们会联合多个表来实现查询,比如把员工表和部门表联合起来就同时可以看到员工和所在部门的信息,员工表有员工姓名,手机号,岗位,所属部门等信息,部门表有部门名称、部门编号等信息,表结构如下:

DROP TABLE IF EXISTS `t_department`;
CREATE TABLE IF NOT EXISTS `t_department` (
  `department_no` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `department_name` varchar(128) NOT NULL DEFAULT  ''  COMMENT '部门名称',
  PRIMARY KEY (`department_no`),
  UNIQUE KEY `department_name` (`department_name`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;

DROP TABLE IF EXISTS `t_employee`;
CREATE TABLE IF NOT EXISTS `t_employee` (
  `id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `department_no` INT unsigned NOT NULL DEFAULT  '0'  COMMENT '部门表id',
  `name` varchar(128) NOT NULL DEFAULT  ''  COMMENT '登录名',
  `position` varchar(128) NOT NULL DEFAULT  ''  COMMENT '岗位',
  `phone` char(11) NOT NULL DEFAULT '' COMMENT '手机号',
  PRIMARY KEY (`id`),
  INDEX `name` (`name`),
  UNIQUE KEY `phone` (`phone`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
ALTER TABLE t_department AUTO_INCREMENT = 10000;
insert into t_department(`department_name`) values('软件部');
insert into t_department(`department_name`) values('测试部');
insert into t_employee(`department_no`,`name`,`position`,`phone`) values('10000','张三','开发','13533265485');
insert into t_employee(`department_no`,`name`,`position`,`phone`) values('10000','李四','开发','13533265486');
insert into t_employee(`department_no`,`name`,`position`,`phone`) values('10001','张五','测试','13533265487');
insert into t_employee(`department_no`,`name`,`position`,`phone`) values('10001','李六','测试','13533265488');

3、内联查询语法结构

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

4、使用实例

Select e.name,e.position,d.department_name,e.phone from t_employee e inner join t_department d on e.department_no=d.department_no;

+--------+----------+-----------------+-------------+
| name   | position | department_name | phone       |
+--------+----------+-----------------+-------------+
| 张三   | 开发     | 软件部          | 13533265485 |
| 李四   | 开发     | 软件部          | 13533265486 |
| 张五   | 测试     | 测试部          | 13533265487 |
| 李六   | 测试     | 测试部          | 13533265488 |
+--------+----------+-----------------+-------------+


http://www.kler.cn/a/315215.html

相关文章:

  • DeBiFormer实战:使用DeBiFormer实现图像分类任务(二)
  • Xshell,Shell的相关介绍与Linux中的权限问题
  • mysql 实现分库分表之 --- 基于 MyCAT 的分片策略详解
  • 【项目开发 | 跨域认证】JSON Web Token(JWT)
  • Docker无缝更新Zentao
  • ROM修改进阶教程------安卓14 安卓15去除app签名验证的几种操作步骤 详细图文解析
  • 如何做系统架构?从动态系统思考的角度
  • 线性规划------ + 案例 + Python源码求解(见文中)
  • idea2021git从dev分支合并到主分支master
  • C#基础(14)冒泡排序
  • Go 并发模式:扩展与聚合的高效并行
  • MATLAB中typecast函数用法
  • 【JVM】概述
  • Mac导入iPhone的照片怎么删除?快速方法讲解
  • 《中国数据库前世今生》纪录片观感:从古至今数据库的演变与未来
  • 蓝桥杯【物联网】零基础到国奖之路:八. RTC
  • ubuntu使用Vscode进行实现UDP编程
  • 深入解析ElasticSearch从基础概念到性能优化指南
  • SQL 语法学习指南
  • 如何制作ubuntu启动U盘
  • macos tcl-tk python图形库软件包安装 port 和brew 包管理工具安装方法和使用总结
  • 单核1.5 TFLOPS、ASIL-B功能安全!Imagination发布汽车GPU IP产品Imagination DXS GPU
  • 如何写一个自动化Linux脚本去进行等保测试--引言
  • 梧桐数据库(WuTongDB):Vectorized Query Optimizers 简介
  • 【C高级】有关shell脚本的一些练习
  • Vue Router 编程式导航全攻略:深入掌握 push, replace, go, back, forward,beforeEach 方法