首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何连接多个表,以获得收入高于其经理的员工的姓名?

如何连接多个表,以获得收入高于其经理的员工的姓名?
EN

Stack Overflow用户
提问于 2020-08-02 09:01:52
回答 3查看 162关注 0票数 0

我已经创建了两个表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table DEPARTMENTS 
( 
    dept_id  number,  
    dept     varchar2(50) not null, 
    mgr_id   number,
    location varchar2(50),  

    constraint pk_departments primary key (dept_id)  
);

create table EMPLOYEES 
(  
    emp_id         number,  
    fname          varchar2(50) not null,
    lname          varchar2(50) not null,  
    email          varchar2(50),
    phone          number,
    hired          date,
    job_id         varchar(20),
    salary         number(7,2),  
    commission_pct number(4,2),  
    dept_id        number,  
    grade          number,

    constraint pk_employees primary key (emp_id),  
    constraint fk_employees_dept_id foreign key (dept_id) 
        references DEPARTMENTS (dept_id)  
    constraint fk_employees_grade foreign key (grade) 
        references SALGRADE (grade)  
);

假设mgr_id在表departments中,employee在employees表中,并且它们通过dept_id链接,我如何获得收入高于其经理的员工的姓名?

我发现'self-join‘是必要的。但是这种情况有点困难,因为需要引用dept_id来引用mgr_id,然后将其与emp_id进行比较,然后创建连接?

EN

回答 3

Stack Overflow用户

发布于 2020-08-02 10:05:29

为了更好地清晰和自我理解,使用ANSI连接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM 
    (SELECT E.SALARY AS MANAGER_SALARY, D.DEPT_ID AS DEPT_ID 
    FROM EMPLOYEES E 
    INNER JOIN 
    DEPARTMENTS D
    ON E.DEPT_ID = D.DEPT_ID) 
MGR_DET 
INNER JOIN 
EMPLOYEES EMP
ON MGR_DET.DEPT_ID = EMP.DEPT_ID 
where EMP.SALARY > MGR_DET.MANAGER_SALARY;
票数 1
EN

Stack Overflow用户

发布于 2020-08-02 11:27:13

您可以使用三个连接来实现这一点。从employees表开始,匹配departments以获取管理器。然后使用管理器匹配回employees

这看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select e.*, em.salary   -- or whatever columns you want
from employees e join
     departments d
     on d.dept_id = e.dept_id join
     employees em
     on em.emp_id = d.mgr_id
where e.salary > em.salary
票数 1
EN

Stack Overflow用户

发布于 2020-08-02 09:15:24

使用隐式连接回答:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT E1.* FROM EMPLOYEES E1, DEPARTMENT D, EMPLOYEES E2
WHERE E1.DEPT_ID = D.DEPT_ID AND D.DEPT_ID = E2.DEPT_ID AND D.MGR_ID = E2.MGR_ID
AND E1.SALARY >= E2.SALARY;

这里的employee E1是薪水高于部门经理的雇员。为此,我们连接employee表E1和department表D以获取dept_id,然后获取mgr_id。现在,下一步是查找ID与部门mgr_id相同的员工。因此,我们再次将其与emp_id上的另一个employee表E2联接。最后,我们比较了员工e1和经理(employee e2)的工资。

使用显式连接来回答:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT E1.* FROM EMPLOYEES E1 JOIN DEPARTMENT D ON E1.DEPT_ID = D.DEPT_ID
JOIN EMPLOYEES E2 ON (D.DEPT_ID = E2.DEPT_ID AND D.MGR_ID = E2.MGR_ID)
WHERE E1.SALARY >= E2.SALARY;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63214208

复制
相关文章
Leetcode No.181 超过经理收入的员工
Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。
week
2021/05/06
3930
leetcode-for-sql-收入超过经理的员工
大家好,我是Peter。本文讲解的是LeetCode-SQL的第181题目,难易程度:简单。
皮大大
2023/08/23
1840
☆打卡算法☆LeetCode 181. 超过经理收入的员工 算法解析
大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。 一、题目 1、算法题目 “编写SQL查询,来查找收入比经理高的员工。” 题目链接: 来源:力扣(LeetCode) 链接: 181. 超过经理收入的员工 - 力扣(LeetCode) 2、题目描述 表:Employee  +-------------+---------+ | Column Name | Type | +-------------+---------+
恬静的小魔龙
2022/08/07
3800
☆打卡算法☆LeetCode 181. 超过经理收入的员工 算法解析
LeetCode-181 超过经理收入的员工---SQL语句实现及详解
解析: 这样就能判断出那个员工的薪资超过了经理。 为什么表这样设计呢??? 因为
贵哥的编程之路
2021/09/08
6010
「SQL面试题库」 No_10 超过经理收入的员工
「SQL面试题库」是由 不是西红柿 发起,全员免费参与的SQL学习活动。我每天发布1道SQL面试真题,从简单到困难,涵盖所有SQL知识点,我敢保证只要做完这100道题,不仅能轻松搞定面试,代码能力和工作效率也会有明显提升。
不吃西红柿
2023/03/20
3870
2022-11-27:超过经理收入的员工。编写一个SQL查询来查找收入比经理高的员工。以下数据的结果输出是Joe,因为Joe是唯一挣得比经理多的雇员。 DROP
2022-11-27:超过经理收入的员工。编写一个SQL查询来查找收入比经理高的员工。以下数据的结果输出是Joe,因为Joe是唯一挣得比经理多的雇员。
福大大架构师每日一题
2022/11/27
6630
2022-11-27:超过经理收入的员工。编写一个SQL查询来查找收入比经理高的员工。以下数据的结果输出是Joe,因为Joe是唯一挣得比经理多的雇员。 DROP
我们是如何优化HAProxy以让其支持200万个并发SSL连接的?
仔细上上图,我们可以发现两个信息: 该机器建立了238万个TCP连接; 此时内存使用量大约在48G左右。 看上去很赞吧?如果有人能够提供配置,并且在单台部署HAProxy的服务器上完成这样规模的调优,是不是更赞?本文将详细描述这个过程;) 本文是一系列关于HAProxy压力测试文章的最后一篇。如果有时间,建议读者能够先阅读本系列的其余两部分。这样能够更好的帮助我们了解本文所提及的内核级别调优需要的一些背景知识。 HAProxy压力测试(第一部分) HAProxy压力测试(第二部分) 为了达到前面提到的效
用户1263954
2018/01/30
7.1K0
我们是如何优化HAProxy以让其支持200万个并发SSL连接的?
YouTube正测试屏蔽“广告拦截器”,以确保其广告收入
周三(6月28日),Reddit的一位用户发现,在使用YouTube时弹出了一个窗口,提示该用户禁止使用广告拦截器,否则他的播放器将在3个视频后自动关闭。
FB客服
2023/08/08
1K0
YouTube正测试屏蔽“广告拦截器”,以确保其广告收入
数据科学面试中你应该知道的十个SQL概念
SQL非常强大,且具有多种功能。然而,当涉及到数据科学面试时,大多数公司只测试其少数核心概念。以下这10个概念因其在实际中应用最多,而最常出现。
人工智能小咖
2020/08/02
1.2K0
数据科学面试中你应该知道的十个SQL概念
mysql练习(含答案)
表结构 DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test1; ##部门表 #DROP IF EXISTS TABLE DEPT; CREATE TABLE DEPT( DEPTNO int PRIMARY KEY,##部门编号 DNAME VARCHAR(14) , ##部门名称 LOC VARCHAR(13) ##部门地址 ) ; INSERT INTO DEPT VALUES (10,'ACCOU
Java学习
2018/04/17
2.6K0
mysql练习(含答案)
Java补充之MySQL入门必备知识
mysql5.5 mysql5.6 mysqI5.7(稳定) mysql8 更高版本
timerring
2023/05/24
1.5K0
Java补充之MySQL入门必备知识
javaweb-oracle-1-57
找到oracle默认的配置文件,复制到其他地方配置成环境变量自动装填数据 C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
全栈程序员站长
2021/05/19
6230
Oracle 数据库查询专题 (select * from emmmm 80 T)
传送门: Oracle数据库学习笔记 (四 —— select 从入门到放弃 【上】) Oracle数据库学习笔记 (四 —— select 从入门到放弃 【下】)
Gorit
2021/12/09
4660
数据库表中常用的查询实验
select ename,sal from emp where deptno=10;
Twcat_tree
2022/11/30
1K0
【leetcode两题选手】MySQL类题目(三)
Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。
看、未来
2020/08/26
3560
在线Coding题目 例如:部门表(id,名称...),员工表(id,部门id,姓名,薪资,入职时间...), 查出部门中薪资最高的员工;部门薪资总和;
coderlwz
2023/10/22
2350
云计算行业高收入的多个技能
随着企业将基础设施迁移到公有云中,对掌握了云计算技能的专业人员的需求逐渐加大,企业无法找到足够的专业人员来管理和支持其环境,云计算技能逐渐成为所有IT技能中最受欢迎的技能。
CloudBest
2019/08/01
1.1K0
员工培训:如何制定以数据为依据的业务决策
普华永道的研究表明,高度数据驱动的组织在决策方面取得显着改善的可能性要高三倍。不幸的是,高达62%的高管仍然更多地依赖经验和直觉,而不是数据来制定业务决策。
AI科技大本营
2020/11/23
7660
员工培训:如何制定以数据为依据的业务决策
Leetcode-sql-one
本文中主要是介绍LeetCode中关于SQL的练习题,从易到难,循序渐进。文中会介绍题目和尽可能多的解答方案
皮大大
2021/03/01
4160
Leetcode-sql-one
如何管理多个 SSH 连接
每台基于   / Unix 的机器都有一个  .ssh 文件夹,您可以在其中保存 ssh 密钥。在这个文件夹中,你可以创建一个名为  config 的文件,可以将所有远程机器的详细信息放在这个配置文件中。
用户1685462
2021/09/04
1.2K0

相似问题

SQL:给出收入高于经理的员工的名字

32

自连接以获取员工经理姓名

150

显示薪资、薪资(薪资)、收入高于公司薪资的员工姓名(薪资)

17

选择员工最多的经理姓名

210

如何从员工姓名中获取经理姓名

331
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文