2013-10-08 176 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