【问题标题】:How to Integrate Result of 2 SQL queries of same Table in a Single Query?如何在单个查询中集成同一表的 2 个 SQL 查询的结果?
【发布时间】:2018-04-01 13:22:30
【问题描述】:

我是 SQL 新手,我刚刚开始学习 SQL。我有一个 Employee 表,它有 3 列:

  • id 整数,
  • 名称 varchar(255),
  • manager_id int

当 manager_id 与 id 相同时,表示一名员工将拥有另一名员工作为经理。

例如:

如果员工记录的员工“BBB”的 id 为 manager_id,员工“AAA”的经理将是“BBB”。

我如何编写一个 SQL 查询,它会给我“员工姓名”及其对应的“经理姓名”的结果。

下面是 Table 的详细信息,到目前为止尝试的查询和预期的结果。

员工表:

select * from test.employee;

查询一:

SELECT name as manager_name FROM test.employee  
 where manager_id IN(select id from test.employee)
 group by manager_id;

查询 2:

 SELECT name as emp_name FROM test.employee

如何实现查询 1 和查询 2 的组合结果,如下所示:

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你需要有两次同一张表,并给它一个别名,像这样:

    SELECT e.name, m.name as manager_name
    FROM test.employee e
    join test.employee m on e.manager_id = m.id
    

    如果有些员工的经理不存在,您可能想改用left outer join

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      相关资源
      最近更新 更多