说我有疑问:
select
Last_Name,
First_Name,
e.EmployeeID
from
employee e
join
Employee_his eh on e.EmployeeID = eh.EmployeeID
名字和姓氏是员工表的一部分,而employeeId
是两者的一部分。
在e
前添加表别名last_name
,first_name
是否会以任何方式更改语句?我想不是,但我被告知它会给我错误的答案。抱歉这个简单的问题,查找起来很难。
答案 0 :(得分:0)
这是您的查询:
select Last_Name, First_Name, e.EmployeeID
from employee e join
Employee_his eh
on e.EmployeeID = eh.EmployeeID;
在这种情况下,需要限定名称,因为EmployeeId
-
没有资格 - 会模棱两可。该列将引用哪个表?
如果查询中有多个表,则应该限定所有列名,因此很清楚查询正在执行的操作 - 对于其他读取查询的人以及几个月之后。
我应该注意ANSI SQL有using
子句。在许多数据库中,查询可以写成:
select Last_Name, First_Name, EmployeeID
from employee e join
Employee_his eh
using (EmployeeId);
但是,SQL Server不支持using
子句。
答案 1 :(得分:0)
如果两个表都有一个具有相同名称的字段,那么是,您需要在字段名称前面加上表名或别名。