MS Access中三表Inner Join SQL语法错误问题求助
解决MS Access三表连接语法错误问题
错误原因分析
你的代码存在三个关键问题导致语法错误:
- Access多表连接需嵌套括号:Access SQL不支持连续的
INNER JOIN写法,必须将前两个表的连接结果用括号包裹后,再与第三个表建立连接。 - 含特殊字符的字段需用方括号包裹:
reason/diagnosis字段包含斜杠,Access会将斜杠识别为除法运算符,必须用[reason/diagnosis]明确声明这是一个字段名。 - Access通配符为
*而非%:Access的LIKE语句使用*作为通配符,%是标准SQL的写法,在Access环境下无法生效。
修正后的查询代码
SELECT o.firstname, o.lastname, o.city, o.state, a.animalname, v.[reason/diagnosis], v.animalid FROM (tblOwner AS o INNER JOIN tblAnimal AS a ON o.ownerid = a.ownerid) INNER JOIN tblVisit AS v ON v.animalid = a.animalid WHERE v.[reason/diagnosis] LIKE "*Injured*" ORDER BY o.firstname;
关键修正说明
- 用括号包裹
tblOwner与tblAnimal的连接结果,适配Access多表连接的语法规则。 - 将所有
v.reason/diagnosis替换为v.[reason/diagnosis],避免特殊字符被误判为运算符。 - 将
"%Injured%"改为"*Injured*",符合Access的通配符使用规范。
内容的提问来源于stack exchange,提问作者Arthur
相关产品推荐
相关产品推荐

