You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Employee与Salary表,查询工资高于员工ABC的所有员工姓名

查询工资高于员工"ABC"的员工姓名

核心思路

先获取员工"ABC"的工资数值,再关联Employee和Salary表,筛选出工资高于该数值的员工姓名。

方案一:子查询直接实现

这是通用写法,适配所有支持SQL的数据库:

SELECT e.ename
FROM Employee e
INNER JOIN Salary s 
    ON e.empid = s.empid
WHERE s.salary > (
    SELECT s2.salary
    FROM Salary s2
    INNER JOIN Employee e2 
        ON s2.empid = e2.empid
    WHERE e2.ename = 'ABC'
);

方案二:变量优化(针对MySQL等支持变量的数据库)

若需重复使用"ABC"的工资值,这种方式逻辑更清晰:

-- 先将ABC的工资存入变量
SET @abc_salary = (
    SELECT s.salary
    FROM Salary s
    INNER JOIN Employee e 
        ON s.empid = e.empid
    WHERE e.ename = 'ABC'
);

-- 查询符合条件的员工姓名
SELECT e.ename
FROM Employee e
INNER JOIN Salary s 
    ON e.empid = s.empid
WHERE s.salary > @abc_salary;

特殊情况处理

如果存在多名名为"ABC"的员工,子查询会返回多个值导致报错,此时可根据需求用MAX()或MIN()确定对比的工资值:

SELECT e.ename
FROM Employee e
INNER JOIN Salary s 
    ON e.empid = s.empid
WHERE s.salary > (
    SELECT MAX(s2.salary)
    FROM Salary s2
    INNER JOIN Employee e2 
        ON s2.empid = e2.empid
    WHERE e2.ename = 'ABC'
);

内容的提问来源于stack exchange,提问作者Anees Shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:45:35