mysql - SQL:创建一个新表,告诉用户每个员工的经理

标签 mysql sql database mysql-workbench

所以我需要制作一个表格,列出每个员工的经理。我知道我需要将经理 ID 与员工 ID 相关联,但我不知道如何去做

create table employee
(EmpID int, 
name varchar (50),
title varchar (50),
managerID int, 
salary int
);

执行命令时

select * from employee;

应该给

EmpID   name               title        managerID
 ----------------------------------------------
'101', 'Robert Jones',   'Sales Person', '102'
'102', 'Liz Farnandezs', 'Sales Manager','106'
'103', 'Mathew Richards','Sales Person', '102'
'104', 'Ethan Lubatkin', 'Sales Person', '105'
'105', 'Stuart Little',  'Store Manager', NULL
'106','Samantha Porter', 'Manager',       NULL

我对 SQL 还是个新手,所以任何能帮助我解决这个问题的东西都会很棒。

我需要一个看起来像这样的结果

EmpID   name               manager        managerID
 ----------------------------------------------
'101', 'Robert Jones',   'Liz Farnandezs', '102'
'102', 'Liz Farnandezs', 'Samantha Porter','106'
'103', 'Mathew Richards','Liz Farnandezs', '102'
'104', 'Ethan Lubatkin', 'Stuart Little',  '105'
'105', 'Stuart Little',   NULL,            NULL
'106','Samantha Porter',  NULL,            NULL

最佳答案

你不需要额外的表格,你在这张表格中有所有需要的信息。

您只需要使用 join(同一张表的两个实例,一个用于员工,一个用于经理)以获取经理的详细信息:

SELECT emps.empID, emps.name, managers.name as manager, 
managers.empID as managerID
FROM employee as emps LEFT JOIN employee as managers 
ON emps.managerID = managers.empID

关于mysql - SQL:创建一个新表,告诉用户每个员工的经理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33836236/

相关文章:

SQLite 更新日期 SQL

ios - 在 iOS 中创建带文件保护的 SQLite3 数据库失败

c# - 如何使用 C# 将数据插入 SQL 表并实现上传功能?

sql - seriate RequestError : SqlContext Error. 在步骤 "GetData"上失败:“超时:请求未能在 15000 毫秒内完成

php - 寻找一个干净地执行 PHP 数据库 session 的好例子

php - 如何在php中查看其他用户的个人资料?

php - 使用 php mysql ajax 动态更新选择框

mysql - 如何修复mysql中外键级联删除/更新超过最大深度15

MySQL检查服务器上是否存在文件

SQL Server NULL 替换为动态值