首页 > 数据库 >MySQL只多表查询

MySQL只多表查询

时间:2023-07-19 15:56:53浏览次数:38  
标签:name 只多表 查询 dept emp MySQL id select

多表查询

内连接

隐式内连接

查询每一个员工的姓名 , 及关联的部门的名称(隐式内连接实现) 表结构: emp ,dept 连接条件: emp.dept_id = dept.id

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;

显式内连接

查询每一个员工的姓名 , 及关联的部门的名称(隐式内连接实现) 表结构: emp ,dept 连接条件: emp.dept_id = dept.id

select e.name, d.name from emp e inner join dept d on e.dept_id = d.id;
select e.name, d.name from emp e join dept d on e.deptid = d.id;

注意:显式内连接inner可以省略

外连接

左外连接

SELECT 字段列表 FROM 表1 LEFT [OUTER]JOIN 表2 0N 条件 ...;

相当于查询左表的所有数据和 表1表2交集部分的数据

右外连接

SELECT 字段列表 FROM 表1 RIGHT [ OUTER]JOIN 表2 0N 条件 ...;

相当于查询右表的所有数据和 表1表2交集部分的数据

外连接演示

  1. 查询emp表的所有数据, 和对应的部门信息(左外连接) 表结构: emp,dept 连接条件:emp.dept_id = dept.id

    select e.*, d.name from emp e leftouterjoin dept d on e.dept_id = d.id;
    select e,*, d.name from emp e left join dept d on e.dept_id = d.id;

     

  1. 查询dept表的所有数据, 和对应的员工信息(右外连接)

    select d.*, e,* from emp e right outer join dept d on e.dept_id = d.id;

     

自连接

自连接查询语法

SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件...;

注意:自连接查询,可以是内连接查询,也可以是外连接查询。

查询员工 及其 所属领导的名字 表结构: emp--

select a.name , b.name from emp a , emp b where a.managerid = b.id;

查询所有员工 emp 及其领导的名宁 emp , 如果员工没有领导, 也需要查询出来

表结构: emp a,emp b

select a.name '员工', b.name '领导' from emp a left join emp b on a,managerid = b.id;

联合查询

案例:将薪资低于5000的员工和年龄大于 50 岁的员工全部查询出来

union all

select * from emp where salary < 5000
union all
select * from emp where age > 50:

union all查询结果不去重,单纯拼接在一起

union

select * from emp where salary < 5000
union
select * from emp where age > 50:

union查询结果去重,并拼接在一起

注意:对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。

 

标签:name,只多表,查询,dept,emp,MySQL,id,select
From: https://www.cnblogs.com/liandaozhanshi/p/17565794.html

相关文章

  • Mysql设置字段从1开始自增
    Mysql设置字段从1开始自增MySQL是一个开源的关系型数据库管理系统,被广泛应用于各种Web应用程序。在MySQL中,我们经常需要设置自增字段,以便在插入新记录时自动生成唯一的标识符。默认情况下,自增字段从1开始自动递增,但有时我们可能需要将自增字段的起始值设置为其他值。本文将介绍如......
  • Mysql查询字段时间加减
    MySQL查询字段时间加减在MySQL中,我们经常需要对时间进行加减操作,例如需要查询一个日期的前一天或后一天的数据。本文将介绍如何在MySQL中使用函数对时间字段进行加减操作,并提供一些常见的使用场景和示例代码。DATE_ADD和DATE_SUB函数在MySQL中,我们可以使用DATE_ADD和DATE_SUB函......
  • Mysql 查询不锁表
    Mysql查询不锁表在使用Mysql数据库进行大量数据读取时,常常会遇到查询导致表锁定的问题。查询锁定表可能会导致其他线程无法对该表进行修改操作,从而影响系统的并发性能。为了解决这个问题,Mysql提供了一些方法来实现查询不锁表的操作。1.事务隔离级别事务隔离级别是控制并发访问......
  • Mysql sum 返回了字符串
    Mysqlsum返回了字符串在Mysql数据库中,SUM函数用于计算数值型列的总和。然而,有时候我们会遇到SUM函数返回字符串的情况,这可能会导致数据处理和分析的问题。在本篇文章中,我们将讨论为什么SUM函数会返回字符串以及如何解决这个问题。为什么SUM函数返回字符串?当SUM函数......
  • Mysql 5.0.22
    如何安装Mysql5.0.22简介Mysql是一款功能强大的开源关系型数据库管理系统,被广泛应用于Web开发中。本文将向刚入行的开发者介绍如何安装Mysql5.0.22版本。安装步骤步骤操作步骤一下载Mysql5.0.22安装包步骤二安装Mysql5.0.22步骤三配置Mysql5.0.22步......
  • MySqlInjector 加不到springboot
    MySqlInjector加不到SpringBootSpringBoot是一个快速开发框架,它简化了Java应用程序的配置和部署过程。然而,有时我们可能会遇到一些问题,例如无法将MySqlInjector加到SpringBoot项目中。本文将介绍如何解决这个问题,并提供代码示例。问题描述当我们尝试将MySqlInjecto......
  • MySql5.7.10
    如何安装MySQL5.7.10简介MySQL是一种常用的关系型数据库管理系统,常用于开发Web应用程序和其他中小型数据存储需求中。本文将指导你如何安装MySQL的最新稳定版本5.7.10。安装步骤下面是安装MySQL5.7.10的步骤:步骤描述1下载MySQL安装包2安装MySQL3配置MySQL......
  • MySQL注册码
    实现MySQL注册码介绍在开发中,我们经常会遇到需要实现注册码的情况。注册码可以用来控制用户的访问权限以及提供额外的功能。MySQL作为一种常用的关系型数据库管理系统,也需要实现注册码来保护数据库的安全性。在本文中,我将教你如何使用MySQL来实现注册码,并使用表格展示整个步骤,然......
  • MySQL中创建一个相同的表
    如何在MySQL中创建一个相同的表在MySQL中,创建一个相同的表可以通过复制已存在的表来实现。在本文中,我将向你展示整个过程,并提供每一步所需的代码。步骤下面是创建相同表的步骤的概览:步骤描述1连接到MySQL数据库2选择要复制的源表3创建一个目标表4复制源......
  • MySQL中插入一个字段的SQL语句
    MySQL中插入一个字段的SQL语句MySQL是一个开源的关系型数据库管理系统,被广泛应用于各种网站和应用程序中。在MySQL中,插入一个字段可以通过SQL语句来实现。本文将介绍如何使用SQL语句向MySQL数据库的表中插入一个字段,并通过代码示例演示具体操作步骤。1.创建表首先,我们需要创建......