在Dbeaver中执行Inner join报错,咨询与SSMS的语法差异
解决SQLite内连接的列找不到错误
你遇到的错误和DBeaver、SSMS的语法差异无关,问题出在SQL代码的表别名使用不一致——SQLite和Microsoft SQL Server的INNER JOIN基础语法完全兼容。
看你写的代码:给EmployeeDemographics表起了别名ed,但在ON子句里却还用原表名EmployeeDemographics引用EmployeeID列,SQLite会把这个当成未定义的列,所以抛出找不到列的错误。
修正后的代码有两种写法:
- 统一使用别名(推荐,代码更简洁):
SELECT * FROM EmployeeDemographics ed INNER JOIN EmployeeSalary es ON ed.EmployeeID = es.EmployeeID
- 全程不使用别名:
SELECT * FROM EmployeeDemographics INNER JOIN EmployeeSalary ON EmployeeDemographics.EmployeeID = EmployeeSalary.EmployeeID
不管是用DBeaver连SQLite,还是SSMS连SQL Server,表别名的使用规则都是一致的,不存在语法差异。
内容的提问来源于stack exchange,提问作者abbasfarajj
相关产品推荐
相关产品推荐

