【问题标题】:Mysql multiple comparasion within one tableMysql一表内多重比较
【发布时间】:2021-07-02 10:45:31
【问题描述】:

Mysql知识远非完美。我不能把它全部放在一起,所以我想我可以在这里尝试一下以理解逻辑。

我有两张桌子

桌子:办公室

ID (int (pk)) name (varchar)

表:员工

ID (int (pk)) office_id (int not null) chief_id (int) name (varchar) wage (float)

我想:

a) 选择所有薪酬高于直接主管的人

b) 选择所有办公室的列表以及每个办公室中工资最高的人。如果不止一个人的工资最高,则全部显示。即使没有人也应该选择办公室。

c) 选择只有一个直属下属的所有首领。

d) 选择所有办公室,按其中人员的总工资降序排列。

知道我应该从哪里开始吗? 提前致谢!

【问题讨论】:

  • 你能包括你到目前为止所尝试的吗?

标签: mysql


【解决方案1】:

从a)开始

SELECT s.*, chief.wage AS chief_wage
  FROM staff s, staff chief
 WHERE s.chief_id = chief.id
   AND s.wage > chief.wage

这里我们使用 self join 将主管的数据添加到所有员工中。然后只是比较薪水。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 2021-10-21
    • 2011-10-08
    • 2012-06-21
    • 2016-07-04
    • 1970-01-01
    • 2021-04-18
    相关资源
    最近更新 更多