Mysql关联查询的分类

关联查询语法

内连接

SELECT

e.`name`,e.sex,d.deptName

FROM emp e

inner JOIN dept d

on

e.deptId=d.deptId

左外关联

select

e.name,e.sex,d.deptName

from dept d

left join emp e

on

d.deptId=e.deptId

右外关联

select

e.name,e.sex,d.deptName

from dept d

right join emp e

on

d.deptId=e.deptId

全外关联

select

e.name,e.sex,d.deptName

from dept d

right join emp e

on

d.deptId = e.deptId

union

select

e.NAME,e.sex,d.deptName

from dept d

left join emp e

on

d.deptId = e.deptId

自连接

select

e.name as empName,

b.name as bossName

from emp e

left join emp b

on e.boosId=b.id

在Mysql关联查询中 可以大概分为以下几种关联查询分时分别如下 内连接 外连接(左外连接 右外连接 全外连接) 自连接

内连接

特点

只查询两张表能关联上的字段信息,如果关联不上什么信息都不显示

思路

编写关联查询分为三个步骤先确定需要关联的表

在确定需要查询的字段

最后确定表之间的关联字段

使用

例如 我有两张表分别是 emp 表 和 dept表 它们的字段如下

emp

dept

假如我们有如下需求我们要查询这个员工所在的部门名称以及它的姓名与性别 我们该如何操作呢,我们会发现这两个表没有哪一张表是把整个数据都存进去的, 这个时候我们就要用到关联查询了 我们先来看看内连接是个怎么样的效果吧

两张表的数据如下

emp

dept

sql语句如下

SELECT e.`name`,e.sex,d.deptName FROM emp e inner JOIN dept d on e.deptId=d.deptId

查询结果如下

总结:这个时候我们会发现没有周六的信息是不是非常符合内连接的特定呢? 只查询两张表能关联上的字段信息,如果关联不上什么信息都不显示

外连接

分类

左连接

特点

以左边的表为基础关联另外的表,左边的表的字段无论如何都会被查询出来,如果左边的表关联不上另外一张表则另外一张表的字段显示为空值

使用

两张表数据如下

emp

dept

需求还是查询员工的姓名以及性别和所属部门

sql语句如下

select e.name,e.sex,d.deptName from dept d left join emp e on d.deptId=e.deptId

查询结果如下

总结:这个时候我们会发现部门为设计部的信息是不是非常符合左外连接的特点呢? 以左边的表为基础关联另外的表,左边的表的字段无虑如何都会被查询出来,如果左边的表关联不上另外一张表则另外一张表的字段显示为空值

右连接

特点

以右边的表为基础关联另外的表,右边的表的字段无虑如何都会被查询出来,如果右边的表关联不上另外一张表则另外一张表的字段显示为空值

使用

两张表数据如下

emp

dept

需求还是查询员工的姓名以及性别和所属部门

sql语句如下

select e.name,e.sex,d.deptName from dept d right join emp e on d.deptId=e.deptId

查询结果如下

总结:这个时候我们会发现员工周六的信息是不是非常符合右外连接的特点呢? 以右边的表为基础关联另外的表, 右边的表的字段无虑如何都会被查询出来,如果右边的表关联不上另外一张表则另外一张表的字段显示为空值

全外连接

特点

把两张表全部都为基础表,没有关联上的字段显示为空值

使用

两张表的数据如下

emp

dept

sql语句如下

SELECT

e.NAME,

e.sex,

d.deptName

FROM

dept d

RIGHT JOIN emp e ON d.deptId = e.deptId

UNION

SELECT

e.NAME,

e.sex,

d.deptName

FROM

dept d

left JOIN emp e ON d.deptId = e.deptId

总结这个时候我们会发现这种查询方式是不是非常符合全外连接的特点呢? 把两张表全部都为基础表,没有关联上的字段显示为空值

自连接

特点

把同一张表看成是另外一张表在这张表的基础上面做关联查询这种查询方式被称作为自连接

使用

两张表数据如下

emp

dept

需求查询每个员工的姓名以及上级领导的名称是谁?

sql语句如下

select e.name as empName,b.name as bossName from emp e left join emp b on e.boosId=b.id

查询结果如下

总结:这个时候我们会发现这种查询方式是不是非常符合自连接的特点呢? 把同一张表看成是另外一张表在这张表的基础上面做关联查询这种查询方式被称作为自连接

mysql 关联字段 查询_Mysql关联查询总结相关推荐

  1. mysql的复杂查询_mysql复杂查询

    所谓复杂查询,指涉及多个表.具有嵌套等复杂结构的查询.这里简要介绍典型的几种复杂查询格式. 一.连接查询 连接是区别关系与非关系系统的最重要的标志.通过连接运算符可以实现多个表查询.连接查询主要包括内 ...

  2. mysql查询_MySQL常用查询

    单表查询 ①查询所有     * mysql> select * from student; ②查询选中字段记录 mysql> select s_name from student; ③条 ...

  3. mysql 查找数据过程_mysql数据库查询过程探究和优化建议

    查询过程探究 我们先看一下向mysql发送一个查询请求时,mysql做了什么? 如上图所示,查询执行的过程大概可分为6个步骤: 客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,如果命 ...

  4. java mysql 分页查询_MySQL分页查询方法及优化

    当数据库的数据量很大时,一次性查询结果就会变得很慢,为了提高查询效率,我们可以使用MySQL的分页查询功能.本文就为大家带来MySQL分页查询方法及优化. 推荐阅读: 分页查询方法: 在MySQL中, ...

  5. mysql 组合查询_MySQL组合查询教程

    #MYSQL#这是我MySQL的第八篇教程.本篇主要介绍的是MySQL的组合查询的用法.在大多数的SQL查询中都只包含从一个或者多个表中返回数据的单条SELECT语句,MySQL其实也支持允许执行多条 ...

  6. mysql数据库操作多表查询_MySQL数据库查询操作进阶——多表查询

    多表查询 在大部分情况下,我们用到的表都是彼此相关联的,所以我们会有相当大的需求用到跨表的查询,这个时候我们就需要将相关联的表连起来做多表查询. 多表查询分为连表查询和子查询,连表查询即将相关联的表连 ...

  7. 简单mysql 查询_MySQL简单查询详解

    MySQL的查询操作 单表查询:简单查询 多表查询:连接查询 联合查询 布尔条件表达式操作符= 等值比较 <=>:跟空值比较不会产生额外信息的等值比较 <>:不等值 <: ...

  8. mysql rand() 子查询_MySQL ------ 子查询(十三)

    查询(query):任何SQL 都是查询,但此术语一般指select 语句 子查询(subquery):嵌套在查询中的查询,MySQL4.1 引入对子查询的支持. 接下来得就比较有意思了,需要你对于表 ...

  9. mysql 什么是子查询_MySQL 子查询

    什么是子查询 为什么要使用子查询 子查询的分类 怎样使用子查询 关联子查询 要使用的数据表 image.png 1. 什么是子查询? 子查询顾名思义就是在正常查询之前先查询出来一条数据或者一个表. 子 ...

  10. MySQL实验四数据库的查询_MySQL数据库查询(实验四)

    MySQL数据库查询 准备工作:脚本文件xkgl.sql下载:xkgl脚本.sql 1.执行脚本xkgl.sql (创建xkgl库.表及插入数据),观察有无错误,如有记录错误信息,并解决. (1) 执 ...

最新文章

  1. [Tracking] KCF + KalmanFilter目标跟踪
  2. 安全的Web主机iptables防火墙脚本
  3. 文件 服务器 要求,文件服务器硬件要求
  4. iOS开发(10)UISegmentedControl
  5. 不用正则表达式,用javascript从零写一个模板引擎(一)
  6. 回溯法|Backtracking
  7. c语言程序设计行列式,新手作品:行列式计算C语言版
  8. S-PTAM:Stereo Parallel Tracking and Mapping论文笔记
  9. 潍坊市计算机培训机构,潍坊电脑培训中心办公软件
  10. 解决 CDH6.3.1 安装HDFS时出现{{CMF_CONF_DIR}}/redaction-rules.json (No such file or directory)错误
  11. 软件测试工程师太累了?
  12. IED 61850 总体建模原则
  13. Java HotSpot虚拟机提高性能,做了哪些操作
  14. (八)Python数据分析与挖掘实战(实战篇)——中医证型关联规则挖掘
  15. mysql的partition_MySQL分区(Partition)
  16. 文件重命名,文件名快速修改重命名
  17. OpenNI2的下载与安装
  18. 国内即时通讯工具介绍
  19. FOTA与 SOTA介绍
  20. 常见文件的加密工具类

热门文章

  1. 方程根求解数值方法matlab实现二分法、牛顿法、斜截法,代码程序,手写思路,理论分析,最基本的操作
  2. 按首字母排序(汉字、英文、数字)简单实现
  3. ENVI计算不同轨道号范围中的平均高程
  4. 什么软件测试出来的网速准确,百度应用的网速测试工具最不准确
  5. 【快代理】隧道代理使用教程
  6. Linux内核启动流程详解
  7. linux抓肉鸡入侵详细教程,一台linux肉鸡的简单手工入侵检测过程
  8. python抢商品_python爬虫,抢小米抢购,
  9. 新下载的工程,启动tomcat出现识别文件失败的现象。No qualifying bean of type 'com.kanq.platform.cert.mapper.CertificateSjdr
  10. bulk insert java_java oracle bulk insert