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

时间:2016-10-02 04:03:55

标签: sql sql-server join

我有两个表,一个是Employee,另一个是Dept

Employee表包含IDNameDeptId列,Dept表格列ID,{{ 1}}。

现在如果写一个查询:

DeptName

我收到错误,因为它不知道我的意思是哪个Select ID, Name, ID, DeptName from Employee Inner Join Dept On Employee.DeptID = Dept.ID 列。如何唯一地定义列?

3 个答案:

答案 0 :(得分:7)

只需包含显式别名即可从ID表格中的Employee列中清除ID表格中的Dept列。实际上,最佳做法是始终在进行连接时通过别名引用列,因此您的查询应如下所示:

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 :(得分:5)

使用别名

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

答案 2 :(得分:1)

您也可以使用表名作为限定符而不是别名:

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