gpt4 book ai didi

mysql - 需要单个输出行上多行的数据。子查询?

转载 作者:行者123 更新时间:2023-11-29 01:26:11 25 4
gpt4 key购买 nike

我对使用 MySQL 还很陌生,所以请原谅这个模糊的标题,我不确定如何问这个问题,或者它是否确实需要子查询。编辑:谢谢@O。琼斯修改了标题。

我有一个员工表,其结构如下:

CREATE TABLE Employees (
employeeNumber INTEGER NOT NULL,
lastName VARCHAR(50) NOT NULL,
firstName VARCHAR(50) NOT NULL,
extension VARCHAR(10) NOT NULL,
email VARCHAR(100) NOT NULL,
officeCode INTEGER NOT NULL,
reportsTo INTEGER NULL,
jobTitle VARCHAR(50) NOT NULL,
PRIMARY KEY (employeeNumber),
FOREIGN KEY (officeCode) references Offices(officeCode)
)ENGINE=innodb;

我正在尝试提出一个列出 3 条数据的查询。 employeeNumber、与该号码关联的员工姓名 (CONCAT(e.firstName, ' ', e.lastName)) 以及员工的 Manager,我们将其视为 reportsTo。我的问题是,reportsTo 只是另一个employeeNumber,因此要将其转换为实际名称,我相信我们需要一个子查询。

以下是数据集的示例:/image/MR5Hs.png

有人可以告诉我子查询是否确实必要,或者是否有更好的方法来执行此操作,并可能为我指明完成查询的正确方向?这是我到目前为止所拥有的:

SELECT
e.employeeNumber as 'Employee Number',
CONCAT(e.firstName, ' ', e.lastName) as 'Employee',
# as 'Manager'
FROM Employees e;

最佳答案

使用加入

 SELECT e.employeeNumber as 'EmployeeNumber', CONCAT(e.firstName, ' ', e.lastName) as 'Employee', CONCAT(m.firstName, ' ', m.lastName) as 'Manager'
FROM Employees e
LEFT JOIN Employees m ON m.employeeNumber = e.reportsTo ;

关于mysql - 需要单个输出行上多行的数据。子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49069306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com