MySQL查询打印每个员工的姓名和工资

标签 mysql sql database

我有这个架构:

Emp(eid: integer,ename: string,age: integer,salary: real)
Works(eid:integer,did: integer,pct_time: integer)
Dept(did:integer,budget: real,managerid:integer)

我正在尝试打印每个工资超过其工作部门预算的员工的姓名和工资。

我有这个 SQL 语句,但它为 ename 返回一个空列,我不确定为什么。有人可以帮忙吗?

select E.ename, E.Salary
from Emp E
where E.salary > all (select D.budget
    from Dept D, Works W
    where E.eid = W.eid and D.did = W.did)

最佳答案

您可以通过普通连接来做到这一点

SELECT E.ename
FROM Emp E
JOIN Works W ON E.eid = W.eid
JOIN Dept D ON D.did = W.did
WHERE E.salary > D.budget

关于MySQL查询打印每个员工的姓名和工资,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42877935/

相关文章:

Java 6 - 将 java.sql.Types 映射到 Java 类型

mysql - MySQL数据库有关系约束时如何插入数据

database - 识别在 pl sql block 中导致 VALUE_ERROR 的数据目的地

php - 从 Angular 表单将日期插入 SQL 数据库

mysql - 创建一个列,从另一列复制数据

sql - 仅存在一个匹配项时的内连接

php - 将查询从 Android 发送到远程服务器数据库的正确方法

java - 包含文本的 JTextfield 上出现 nullpointerException

php - fatal error : Cannot use object of type stdClass as array in chemin/index. php 第 52 行

mysql - 是否可以在不重新创建 MySQL 唯一索引的情况下将其更改为非唯一索引