Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Access SQL SELECT查询:需要在WHERE子句中使用表别名吗?_Sql_Ms Access - Fatal编程技术网

Access SQL SELECT查询:需要在WHERE子句中使用表别名吗?

Access SQL SELECT查询:需要在WHERE子句中使用表别名吗?,sql,ms-access,Sql,Ms Access,当前环境:共享网络驱动器上的拆分Access数据库、本地访问前端、访问后端 我在写一个愚蠢的长选择语句。使用表别名使代码更具可读性 我被教导在WHERE语句中写出完整的表名,因为它们在FROM语句之前执行。但是,当我这样做时,Access在我写出完整的表名时找不到引用的表/字段。奇怪的是,我尝试在WHERE语句中使用别名,但效果很好 Access执行语句的方式是否与我所学的不同?还是我在不知不觉中让它这么做 无法工作的SQL代码的缩短版本: SELECT [C].Multi_File_Case_

当前环境:共享网络驱动器上的拆分Access数据库、本地访问前端、访问后端

我在写一个愚蠢的长选择语句。使用表别名使代码更具可读性

我被教导在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;

编辑:一个单词和一个大写;)

将表引用定义为来自的
中的别名后,需要在查询中的任何位置使用该别名。别名不仅仅是一个昵称;这是对查询范围的名称更改

我建议你放下方括号。查询更易于阅读和编写,如下所示:

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;

不定义表别名时,表名本身将用作别名。

实际上有一定意义。
[Case\u Tbl]。Include\u In\u Casebook=True应该是
[C]。在案例本中包含\u=True我被认为是不同的,一旦你给一个表分配了一个别名,你就必须在大多数引擎的SQL操作顺序中使用这个别名:
FROM
(使用any
JOIN
)通常是处理的第一个子句<代码>接着是哪里。@Parfait澄清一下,你是说FROM+JOIN=首先执行?因此,从w/o开始,连接没有首先执行,或者我只是在想象WHERE子句规则中不使用别名?更多方括号!从[Case\u Tbl]c中选择c[字段](因为你可以主动将你的昵称设置为关键字)方括号是一个习惯,我不知道我可以打破它哈哈。当我接管我当前的ms access项目时,前一个家伙命名了所有带有空格的表。@verybasicapapplication。如果前一个家伙吸烟,你不应该现在就开始。