SQL查询报Unrecognized name: employees at [9:8]错误是什么原因?
错误产生原因
- 你的SQL语句中,
FROM后指定的员工表用了全限定名`strange-calling-318804.employee_data.Employees`,没有为该表声明employees别名,SQL引擎无法识别后续SELECT、ON子句中出现的employees标识符,因此抛出未识别名称错误。 - 同时你关联的部门表也没有声明
departments别名,修复员工表的问题后,部门表的引用也会触发同类错误。
解决方法
有两种常用修复方案:
方案1:为表添加对应别名
在两个表的声明后分别加上employees、departments的别名即可,AS关键字可省略,修改后的完整SQL如下:
SELECT employees.name AS employee_name, employees.role AS employee_role, departments.name AS department_name FROM `strange-calling-318804.employee_data.Employees` AS employees JOIN `strange-calling-318804.employee_data.departments` AS departments ON employees.department_id = departments.department_id
方案2:直接使用原表名引用
如果不想设置别名,就把所有引用employees的地方替换为员工表的原表名Employees(注意和实际表名的大小写保持一致)即可:
SELECT Employees.name AS employee_name, Employees.role AS employee_role, departments.name AS department_name FROM `strange-calling-318804.employee_data.Employees` JOIN `strange-calling-318804.employee_data.departments` ON Employees.department_id = departments.department_id
内容的提问来源于stack exchange,提问作者Steve Sheng
相关产品推荐
相关产品推荐

