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

Mysql的高级查询:SQL关联查询(内连接/外连接/自连接)/子查询

一.关联查询:

定义:关联查询又叫连接查询

常见:内连接/外连接/自连接

1.内连接(无存在主从表)

语法:inner join ...on

定义:组合两个表的记录,返回关联字段相符的记录,也就是返回表的交集(红色部分)

# 查出学生表中学生们所在班级对应的班级名
SELECT * FROM student as s INNER JOIN classroom c on s.class_id = c.class_id

2.右连接(前从后主)

语法:right join ...on

定义:返回右表(B)所有的数据(主表),以及左表(A)与右表(B)对应的数据,没有则返回null(红色部分)

select * from student s right join classroom c on s.class_id = c.class_id

3.左连接(前主后从)

语法:left join ...on

定义:返回左表(A)所有的数据(主表),以及右表(B)与左表(A)对应的数据,没有则返回null(红色部分)

select * from student s left join classroom c on s.class_id = c.class_id

4.自连接

定义:一张表共用

语法:inner join ...[on]

例子:
select * from 员工表 表1 inner join 员工表 表2;
# 找到员工表的上级领导姓名
select * from 员工表 表1 inner join 员工表 表2 on 表1.领导id =表1.员工id ; # 没有上级领导的员工会不显示
select * from 员工表 表1 left join 员工表 表2 on 表1.领导id =表1.员工id ;# left才能把没有领导的也显示出来null

二.子查询:

定义:子查询也叫嵌套查询,将一个查询结果当作另一个查询的条件或结果集。子查询最接近思考方式,最自然的查询。

分类:单行子查询(=),多行子查询(in)

# 找到xx所在班级的班级名称(单行子查询)
SELECT * FROM classroom WHERE class_id = (SELECT class_id FROM student where `name` = 'xx')
# 查询薪资与x部门员工薪资相等但是不在x部门的员工信息
select * from emp where sal in (select sal from emp where 部门 = 'x') and 部门 != 'x'


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

相关文章:

  • 数字后端教程之Innovus report_property和get_property使用方法及应用案例
  • Python 连接 Redis 进行增删改查(CRUD)操作
  • INQUIRE:一个包含五百万张自然世界图像,涵盖10,000个不同物种的专为专家级文本到图像检索任务设计的新型基准数据集。
  • 除了 Postman,还有什么好用的 API 调试工具吗
  • 如何用WordPress和Shopify提升SEO表现?
  • pip3 install -e .[stable]讲解
  • uni-app和Node.js使用uni-push2.0实现通知栏消息推送功能
  • Centos挂载和删除nfs
  • python选择排序算法
  • 基于Java+Mysql实现(web)大型企业管理系统
  • API安全测试 | Postman + BurpSuite 配置证书代理
  • chapter14-集合——(List)——day17
  • 828华为云征文|部署在线文件管理器 Spacedrive
  • 大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
  • 【LLM多模态】CogVideoX文生视频模型结构和训练过程
  • 【openGauss】检查工具gs_check,gs_checkperf的应用
  • Redisson 异步释放锁
  • 什么是485无线通信
  • 磁盘写操作压力测试工具的设计与实现
  • ChatGLM3模型搭建教程
  • OpenCV结构分析与形状描述符(20)计算一个包围给定点集的最小外接圆函数minEnclosingCircle()的使用
  • 研1日记12
  • C++系列-函数对象/仿函数
  • [网络]TCP/IP协议 之 网络层IP协议(3)
  • 艾丽卡的区块链英语小课堂
  • 基于ssm+vue+uniapp的新生报到系统小程序