如何在SQL Server连接中连接重复的列名称?

问题描述:

我有两个表格,一个是Employee,另一个是Dept如何在SQL Server连接中连接重复的列名称?

Employee表有其是IDName,并DeptId列,Dept表具有列IDDeptName

现在,如果编写一个查询:

Select 
    ID, Name, ID, DeptName 
from 
    Employee 
Inner Join 
    Dept On Employee.DeptID = Dept.ID 

我得到一个错误,因为它不知道我的意思是这ID列。我如何唯一地定义列?

+0

请检查您的Dept表,它是否有列ID? –

+0

是的,表部了。问题已解决。实际上,我需要将左表中的列与右表中的列区分开来。 –

就包括明确的别名从Dept表中的列ID在distiguish的Employee表中的列ID。其实,这是最好的做法是总是用别名做时加入,让您的查询应该是这个样子指柱:

SELECT e.ID AS employeeID, 
     e.Name, 
     e.DeptId, 
     d.ID AS deptID, 
     d.DeptName 
FROM Employee e 
INNER JOIN Dept d 
    ON e.DeptID = d.ID 
+1

工作完美。它帮助了很多!谢谢。 –

使用别名

Select E.ID as EmpID 
    , E.Name 
    , D.ID as DepID 
    , D.DeptName 
From Employee E 
Inner Join Dept D 
On E.Employee.DeptID = D.Dept.ID 

您也可以使用表名作为限定词,而不是一个别名:

Select 
    Employee.ID, Employee.Name, Dept.ID, Dept.DeptName 
from 
    Employee 
Inner Join 
    Dept On Employee.DeptID = Dept.ID