2013-10-08 213 views
2

取別名請小提琴myFiddleSQL Server的查詢

查詢

create table Emp(empId int primary key, EmpName varchar(50),MngrID int) 

insert into Emp(empId,EmpName,MngrID)values(1,'A',2) 
insert into Emp(empId,EmpName,MngrID)values(2,'B',null) 

A有mangr B,而A沒有mngr因此,雖然從查詢獲取記錄它顯示我

EmpId   EmpName  MngrName(alias MngrName) 
1     A   B 

2     B   null 

如何使用查詢獲取上述數據

回答

1

出於某種原因,這是行不通的SQLFiddle,但我跑在我自己的SQL Server實例來驗證它的工作:

SELECT e1.EmpID, e1.EmpName, e2.EmpName 
FROM emp e1 LEFT OUTER JOIN emp e2 
ON e1.MngrID = e2.EmpID 

基本上,你正在做一個「自我加入」通過聲明的兩個實例表(e1和e2),然後將第一個實例的MngrID加入第二個實例的EmpID。

+0

感謝rply – IMMORTAL

1

您需要將LEFT JOIN表格本身:

select A.empID, A.empName, b.empName as mgrName 
from emp A left join emp B on A.mngrID = b.empID 

http://sqlfiddle.com/#!3/184dc/8

+0

感謝您的回覆....... – IMMORTAL

+0

不客氣。我很高興這個解決方案爲你工作。 –

0

選擇EMPID,EmpName,(選擇EmpName FROM EMP WHERE MngrID = amp1.MngrID)從員工經理爲AMP1