当前环境:拆分访问数据库,本地访问前端,共享网络驱动器上的访问后端
我正在写一个愚蠢的长SELECT语句。使用表别名使我的代码更具可读性。
我被教导要在WHERE语句中写出完整的表名,因为它们是在FROM语句之前执行的。但是,当我这样做时-当我写出完整的表名时,Access找不到引用的表/字段。奇怪的是,我尝试在WHERE语句中使用别名,并且有效!!
Access执行语句的方式与我所教的不同吗?还是我在不知不觉中导致它这样做?
我的SQL代码的缩小版本不起作用:
SELECT [C].Multi_File_Case_ID,
[C].Case_Report_Number,
[C].Include_In_Casebook,
[C].Case_Status,
FROM Case_Tbl AS [C]
WHERE [Case_Tbl].Include_In_Casebook = True;
编辑:一个单词和一个大写字母;)
答案 0 :(得分:3)
一旦在FROM
中将表引用定义为别名,就需要在查询中的所有地方使用该别名。别名不仅仅是昵称;这是查询范围的名称更改。
我建议您放下方括号。查询更易于阅读和编写为:
SELECT c.Multi_File_Case_ID, c.Case_Report_Number, c.Include_In_Casebook, c.Case_Status
FROM Case_Tbl AS c
WHERE c.Include_In_Casebook = True;
当您不定义表别名时,表名本身就是别名。