从下面的员工表中,我需要检索一名员工和经理。有人能帮我吗?提前谢谢。
tblEmployee:
empId empName manID
1 A
2 B 1
3 C 2
输出:
Name Manager
A -
B A
C B
答案 0 :(得分:1)
一对基本方法将是
SELECT
'Name' = empName
, 'Manager' = (SELECT empName FROM tblEmployee WHERE empID = e.manID)
FROM tblEmployee e
或
SELECT
'Name' = e.empName
, 'Manager' = ISNULL(m.empName, 'none')
FROM tblEmployee e
LEFT JOIN tblEmployee m
ON e.manID = m.empID
根据您使用的DBMS,可能有更好的方法。
答案 1 :(得分:1)
您需要自己加入表:
对于mysql,它将是:
SELECT
t1.empName AS 'Name',
IFNULL(t2.empName, '-') AS 'Manager'
FROM
myTable t1
LEFT JOIN
myTable t2
ON
t1.manID = t2.empId
t1
现在将成为基本用户,而t2
将包含经理(如果存在)。如果没有经理,t2.empName
将为null
,然后由-
功能替换为ifnull
。
答案 2 :(得分:0)
利用Right
和self
加入
select t2.empName, t1.empName as Manager from tblEmployee t1
right Join tblEmployee t2 on t1.empID = t2.manID
order by empName