Mysql Select中的SQL相关子查询

Mysql Select中的SQL相关子查询,mysql,sql,database,oracle,correlated-subquery,Mysql,Sql,Database,Oracle,Correlated Subquery,可以像这样在SELECT中创建相关子查询吗 SELECT EmployeeID, EmployeeName, ManagerID, (SELECT EmployeeName FROM tblEmployee WHERE EmployeeID = ManagerID) FROM tblEmployee WHERE EmployeeID = '12345'; ManagerID应该相等,并且应该是员工“12345”的ManagerID。 子查询的目的是根据经理的ID获取经理的全名。非常

可以像这样在SELECT中创建相关子查询吗

SELECT  EmployeeID,
EmployeeName,
ManagerID,
    (SELECT EmployeeName FROM tblEmployee WHERE EmployeeID = ManagerID)
FROM tblEmployee 
WHERE EmployeeID = '12345';

ManagerID应该相等,并且应该是员工“12345”的ManagerID。
子查询的目的是根据经理的ID获取经理的全名。

非常感谢您的回复。
我是个新手<谢谢,
黑麦。

试试这个

DECLARE @tblEmployee TABLE(EmployeeID INT,EmployeeName VARCHAR(100),ManagerID INT)
INSERT INTO @tblEmployee VALUES(1,'Arun',2)
INSERT INTO @tblEmployee VALUES(2,'Dinesh',NULL)


SELECT  EmployeeID,
EmployeeName,
ManagerID,
    (SELECT M.EmployeeName FROM @tblEmployee M WHERE T1.ManagerID = M.EmployeeID)ManagerName
FROM @tblEmployee T1
WHERE EmployeeID = 1;

对。为了简化SQL编写,请记住,当查询有多个表引用时,始终限定所有列名:

SELECT e.EmployeeID, e.EmployeeName, e.ManagerID,
       (SELECT m.EmployeeName
        FROM tblEmployee m
        WHERE m.EmployeeID = e.ManagerID
       )
FROM tblEmployee e
WHERE e.EmployeeID = '12345';

我通过这个查询得到了数据

SELECT e.EmployeeID, e.EmployeeName, e.ManagerID, m.EmployeeName as ManagerName 
FROM tblEmployee e 
JOIN tblEmployee m
ON e.ManagerID = m.EmployeeID
WHERE e.EmployeeID = '12345';
感谢所有发布回复的人。
如果没有你们,这件事永远不会解决。

谢谢,

感谢您的回复。这是一个更简单、更容易理解的/ready query我应该在m.EmployeeName之前添加DISTINCT关键字吗?否-如果
tblEmployee.EmployeeID
具有有效的唯一约束,子查询将保证返回最多1行。感谢您的回复。我真的很感激