SQL内部联接查询返回两个相同的列

Ami*_*r.F 3 sql sql-server inner-join

假设我有以下SQL查询:

SELECT *
FROM employee 
INNER JOIN department ON employee.EmpID = department.EmpID
Run Code Online (Sandbox Code Playgroud)

我想问一下,为什么我要获得两个EmpID专栏,我怎么才能得到其中一个,最好是第一个.

我正在使用SQL服务器

Jac*_*cob 6

SELECT employee.EmpID, employee.name, ...
FROM employee 
INNER JOIN department ON employee.EmpID=department.EmpID
Run Code Online (Sandbox Code Playgroud)

要精确并指定所需的列,而不是使用星号来选择所有列.


Cra*_*ack 5

您可以从这两个表中获取所有列,这就是您有两EmpID列的原因.JOIN删除公共列的唯一类型NATURAL JOIN是SQL Server未实现的类型.您的查询看起来像这样:

SELECT *
FROM employee 
NATURAL JOIN department
Run Code Online (Sandbox Code Playgroud)

这通过比较两个表中具有相同名称的所有列来生成连接谓词.结果表只包含每对同名列的一列.