1.查询工资比他经理的工资还高的员工的姓名

Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。

+----+-------+--------+-----------+

| Id | Name | Salary | ManagerId |

+----+-------+--------+-----------+

| 1 | Joe | 70000 | 3 |

| 2 | Henry | 80000 | 4 |

| 3 | Sam | 60000 | NULL |

| 4 | Max | 90000 | NULL |

+----+-------+--------+-----------+

给定 Employee 表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。

+----------+

| Employee |

+----------+

| Joe |

+----------+

s1表: s2表:

+----+-------+--------+-----------+ +----+-------+--------+-----------+

| Id | Name | Salary | ManagerId | | Id | Name | Salary | ManagerId |

+----+-------+--------+-----------+ +----+-------+--------+-----------+

| 1 | Joe | 70000 | 3 | | 1 | Joe | 70000 | 3 |

| 2 | Henry | 80000 | 4 | | 2 | Henry | 80000 | 4 |

| 3 | Sam | 60000 | NULL | | 3 | Sam | 60000 | NULL |

| 4 | Max | 90000 | NULL | | 4 | Max | 90000 | NULL |

+----+-------+--------+-----------+ +----+-------+--------+-----------+

2.解答

(1)方法一

select s1.Name as Employee from Employee as s1,Employee as s2 where s1.ManagerId=s2.Id and s1.Salary > s2.Salary

(2)方法二

Select s1.Name as Employee from Employee s1 join Employee s2 on s1.ManagerId = s2.Id and s1.Salary > s2.Salary

Select s1.Name as Employee from Employee s1 join Employee s2 on s1.ManagerId = s2.Id where s1.Salary > s2.Salary

(3)方法三:这种方法涉及到子查询,所以查询效率低

select s1.Name as Employee from Employee as s1 where s1.Salary > (select s2.Salary from Employee as s2 where s1.ManagerId = s2.Id);

3.编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。

编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。

示例:

+----+---------+

| Id | Email |

+----+---------+

| 1 | a@b.com |

| 2 | c@d.com |

| 3 | a@b.com |

+----+---------+

根据以上输入,你的查询应返回以下结果:

+---------+

| Email |

+---------+

| a@b.com |

+---------+

说明:所有电子邮箱都是小写字母。

4.解答

(1)方法一:

select distinct p1.Email from Person as p1,Person as p2 where p1.Email=p2.Email and p1.Id !=p2.Id;

(2)方法二:

select Email

from Person

group by Email

having count(*) > 1;

MySQL查询所有员工的邮箱_mysql数据库查询练习二-【比经理工资还高员工姓名】【查找重复的邮箱】...相关推荐

  1. mysql数据库查询练习二-【比经理工资还高员工姓名】【查找重复的邮箱】

    1.查询工资比他经理的工资还高的员工的姓名 Employee 表包含所有员工,他们的经理也属于员工.每个员工都有一个 Id,此外还有一列对应员工的经理的 Id. +----+-------+----- ...

  2. mysql 姓刘或姓李_MYSQL数据库查询

    作为测试人员最常用的数据库查询语句,本篇博文做了一个具体的总结,以下只是为了概述查询方法而举的例子,并不一定是最好的查询方式. 红色标记的地方是该查询语句中重点想要表达的查询方法. 一. 新建一个数据 ...

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

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

  4. mysql所有班级名称和人数_mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...

    mysql数据库优化课程---12.mysql嵌套和链接查询(查询user表中存在的所有班级的信息?) 一.总结 一句话总结: in:distinct:select * from class wher ...

  5. mysql php 缓存机制_mysql数据库查询缓存原理是什么

    mysql数据库查询缓存原理是:1.缓存SELECT操作的结果集和SQL语句,key为sql,value为查询结果集:2.如果新的SELECT语句到了,以这个sql为key去缓存中查询,如果匹配,就把 ...

  6. mysql获取查询策略语句_MySQL数据库查询性能优化策略

    优化查询 使用Explain语句分析查询语句 Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句. 通过对查询语句的分析,可以了解查询语句的执行 ...

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

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

  8. mysql数据库的查询_mysql数据库查询

    查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...

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

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

最新文章

  1. 厉害了!Python+matplotlib制作8个排序算法的动画
  2. ACL 2021 | 北京大学KCL实验室:如何利用双语词典增强机器翻译?
  3. POJ - 2411 Mondriaan's Dream(状压dp)
  4. java string底层实现_Java-学习日记(Shell与String底层原理)
  5. 谷歌终于开放 “.app” 顶级域名注册:需要 HTTPS 加密
  6. 真正无人驾驶有望在美国全境普及?美交通部准备修改安全法规
  7. pyspark指定schema
  8. ChengDu University Mental Health Test 需求分析文档
  9. 载入样式表单出错: 分析 XSLT 样式表单失败
  10. dojo0.9的第一个实例
  11. Perhaps JAVA_HOME does not point to the JDK的解决方法
  12. 微信公众号注册认证流程
  13. SpringBoot+redis时事务和SessionCallback的使用和抉择
  14. RFID区域实时定位系统
  15. 3D游戏模型之鼻子的建模
  16. 曾是谷歌程序员,抛下百万年薪创业,4年成就7亿用户,今身价百亿!
  17. rti matlab,dSPACE-RTI知识介绍.pdf
  18. hadoop--环境搭建--域名解析失败
  19. 关于neo4j图数据库导出的svg文件打开方式
  20. 词霸天下---141词根 【-habit- = -hibit- 拥有,占据,居住 】

热门文章

  1. 【2023华为OD笔试必会25题--C语言版】目录
  2. 苏生:“月入三万”的背后,竟然是......
  3. 回归项目实战:预测燃油效率 (tensorflow2.0官方教程翻译)
  4. linux命令 权限管理 chown 改变文件的所有者,组,
  5. 如何用R语言进行云计算
  6. C#WINFORM全选反选(两种)
  7. Kubernetes入门教程 --- 使用二进制安装
  8. 喝水也要喝出高逼格!这款智能保温杯,用它再也没烫过嘴~
  9. 想做数字芯片设计前端?那你得了解这些事
  10. matlab标准阵列译码,译码标准阵列表