再次询问 - 使用 select 子句来 return 来自同一属性的不同值 - MySQL

Asking again - Using a select clause to return different values that come from the same atribute - MySQL

我需要 select 员工 table 主管人员和非主管人员的姓名。因此,我需要两个单独的列来return,一个是主管的名字,一个是员工的名字。

为此,我试过像这样使用 where exists

select concat(first_name, middle_name, last_name) as supervisor_name, concat(first_name, middle_name, ulast_name) as employee_name
from employees
where exists (select employee_name from employees where employees.id = department.supervisor_id);

我也试过在两个 select 子句之间创建联合,如下所示:

select  concat (first_name, middle_name, last_name) as supervisor_name
from employees
where exists (select * from department where employees.id = department.supervisor_id)
union
select  concat (first_name, middle_name, last_name) as employee_name
from femployees
where exists (select * from department where employees.id != department.supervisor_id);

请注意,该部门是另一个 table,其中我有主管的身份证号码。

我搜索过是否可以使用某种 check 约束作为替代,但找不到。 我还尝试应用 select distinct ,试图“划分”值 returned 但无法使其正常工作。

也尝试过使用别名,但 returnfirst_name 字段中的内容不明确。这是脚本:

select concat (first_name, middle_name, last_name) as supervisor_name, concat (first_name, middle_name, last_name) as employee_name
from employees
join employees as supervisor_name on department.supervisor_id = employees.id
join employees as supervisor_id on department.supervisor_id != employees.id;

您必须加入 department table。

您需要在 SELECT 列表中使用 table 别名以避免歧义。

select concat (s.first_name, s.middle_name, s.last_name) as supervisor_name, concat (e.first_name, e.middle_name, e.last_name) as employee_name
from employees AS e
JOIN department as d ON e.department_id = d.id
join employees as s on d.supervisor_id = s.id