mysql - 查询大于特定院系最小值的教授和薪资

标签 mysql database

鉴于此架构:

Professor_ID
Professor_Name
Dept_ID
Salary


Dept_ID
Dept_Name

一所大学使用 2 个数据表(教授和系)来存储有关其教授以及与每个专业相关的系的数据。

编写一个查询来打印每位教授的姓名和工资:

  1. 教授不在艺术系工作
  2. 教授的薪水高于艺术系教授的最低薪水

示例输出:

Joe Smith  22066

Ken Doe 13411

Eliott Scott 19404

Scott Thompson 48299

我刚刚尝试了类似的方法,但它不起作用:

SELECT Professor_ID, Professor_Name, Dept_ID, Salary
FROM Professors p  
INNER JOIN Departments d
ON p.Dept_ID = d.Dept_ID
WHERE Dept_Name != 'Art'and Salary > (SELECT MIN(Salary))
   FROM Professors p 
   INNER JOIN Departments d 
   ON p.Dept_ID = d.Dept_ID  
   WHERE Dept_Name = 'Arts and Humanities')

最佳答案

这会给你

最终查询中标记为 ---1 的部分将为您提供非艺术系教授的所有薪水 最终查询标记为 ---2 的部分将比较第一部分中选择的教授的薪水,并使用以下查询将其与艺术教授的最低薪水进行比较:

select min(Salary) from From Professors p inner join Departments d on p.Dept_ID = d.Dept_ID  where Dept_Name = 'Art'

最终查询

--- 111
    select 
    Professor_ID,
    Professor_Name,
    Dept_ID,
    Salary
    From Professors p  inner join Departments d on p.Dept_ID = d.Dept_ID
    where Dept_Name != 'Art'
--- 111
--- 222
    and Salary > (select min(Salary) From Professors p inner join Departments d on p.Dept_ID = d.Dept_ID  where Dept_Name = 'Art')
--- 222

关于mysql - 查询大于特定院系最小值的教授和薪资,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59685780/

相关文章:

php - 使用时间戳计算平均点击率

PHP 查询 - 当用户 ID 存储在另一个表中时,如何添加新列并在表中插入用户信息?

MYSQL 查询语法 - 未知列错误但列存在

mysql - 如果该行具有相同的值,则将光标移动到下一个

database - 一对多数据库关系

php - 值不会插入到数据库的表中

php - 将MySQL数据库备份到Dropbox

mysql - 向客户端公开数据库主键

mysql - 一些帮助查询第三范式

database - SQLite3 : Delete record without overwriting it with nullbytes