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

【MySQL】P8 多表查询(2) - 连接查询 联合查询

连接查询以及联合查询

  • 多表查询概述
  • 连接查询
    • 内连接
      • 隐式内连接
      • 显式内连接
    • 外连接
      • 左外连接
      • 右外连接
      • 自连接
  • 联合查询


多表查询概述

建表语句见上一篇博文:https://blog.csdn.net/weixin_43098506/article/details/129402302

e.g.e.g.e.g.

select * from emp, dept where emp.dept_id = dept.id;

在这里插入图片描述

多表查询分为 连接查询子查询,连接查询分为 内连接外连接 以及 自连接


连接查询

内连接

内连接查询返回的是两张表之间交集的数据,也就是下图中蓝色部分;在这里插入图片描述

隐式内连接

建表语句见上一篇博文:https://blog.csdn.net/weixin_43098506/article/details/129402302

# 查询每一个员工所属的部门情况:
select emp.name, dept.name from emp, dept where emp.dept_id=dept.id;
# 简化
select e.name, d.name from emp e, dept d where e.dept_id=d.id;

相关缩写简化,见博文:https://blog.csdn.net/weixin_43098506/article/details/129365556

显式内连接

# 查询每一个员工所属的部门情况:
select e.name,d.name from emp e inner join dept d on e.dept_id = d.id;
# 注意 inner 可以省略;

外连接

左外连接是下图中 粉色+蓝色 部分
右外连接是下图中 紫色+蓝色 部分。

在这里插入图片描述

左外连接

# 查询 emp 表所有数据,和对应的部门信息(左外连接)
select e.*, d.name from emp e left outer join dept d on d.id = e.dept_id;
# 注意 outer 可以省略;

右外连接

# 查询 dept 表所有数据,和对应的员工信息(右外连接)
select d.*, e.* from emp e right outer join dept d on d.id = e.dept_id;
# 注意 outer 可以省略;

自连接

自连接查询可以是内连接,同样可以是外连接。

# 查询员工以及所属领导名字
select a.name,b.name from emp a, emp b where a.managerid = b.id;
# 查询所有员工 emp 以及其领导名字 emp,如果员工没有领导,也需要查询出来;
select a.name,b.name from emp a left join emp b on a.managerid=b.id;

联合查询

把多次查询结果联合起来,形成一个新的查询结果集;

select 字段列表 from 表A ...
UNION [all]
select 字段列表 from 表B ...;

union all 直接将查询的结果合并,所以可能回存在重复:

# 将薪资低于5000的员工和年龄大于50的员工全部查询出来
select * from emp where salary < 5000
union all
select * from emp where age > 50;

union 将查询的结果合并后去重:

# 将薪资低于5000的员工和年龄大于50的员工全部查询出来
select * from emp where salary < 5000
union
select * from emp where age > 50;

http://www.lryc.cn/news/34218.html

相关文章:

  • QML动画(Animator)
  • Git 分支操作【解决分支冲突问题】
  • 盘点全球10大女性技术先驱
  • C++之dynamic_cast
  • JavaScript 箭头函数、函数参数
  • JavaScript_Object.keys() Object.values()
  • 扬帆优配|高送转+高分红+高增长潜力股揭秘
  • 基于transformer的多帧自监督深度估计 Multi-Frame Self-Supervised Depth with Transformers
  • 设计模式: 单例模式
  • idea编辑XML文件出现:Tag name expected报错
  • 第十三届蓝桥杯省赛C++ A组 爬树的甲壳虫(简单概率DP)
  • 手动集成Tencent SDK遇到的坑!!!
  • 三天吃透mybatis面试八股文
  • SpringBoot整合Quartz以及异步调用
  • Golang 中 Slice的分析与使用(含源码)
  • 瀑布开发与敏捷开发的区别,以及从瀑布转型敏捷项目管理的5大注意事项
  • “华为杯”研究生数学建模竞赛2007年-【华为杯】A题:建立食品卫生安全保障体系数学模型及改进模型的若干理论问题(附获奖论文)
  • 基于JavaWeb学生选课系统开发与设计(附源码资料)
  • centos7 oracle19c安装||新建用户|| ORA-01012: not logged on
  • 【算法设计-分治】递归与尾递归
  • HTML 编辑器
  • css盒模型详解
  • 函数模板(template关键字的应用)
  • 嵌入式学习笔记——使用寄存器编程操作GPIO
  • 图像的读取与保存
  • 【蓝桥杯集训·每日一题】AcWing 4074. 铁路与公路
  • 网络:TCP与UDP相关知识(详细)
  • 不好!有敌情,遭到XSS攻击【网络安全篇】
  • Mysql中Explain详解及索引的最佳实践
  • JavaScript 内的 this 指向