2013-06-28 46 views
0

今天我发现了一个很奇怪的看着查询在MS-Access数据库之一:MS-Access中'没有匹配'关键字的查询语法?

SELECT Count([hrpersnl Without Matching T_Employees].EmpNo) AS [Count] 
FROM [hrpersnl Without Matching T_Employees]; 

Without Matching条款在我看来是相当MS-访问,从ANSI-SQL不同,作为一个整体特定的语法,在我看来,找到的记录在两个表的EmpNo字段中都没有匹配,但T_Employees表没有EmpNo字段,所以我可能在我对此的假设中错误。

它实际上做了什么,它的文档在哪里?

+4

您是否查找过具有这些名称的已保存查询?在你的例子中,方括号内的所有内容都应该是表或查询的名称。 –

+0

是'hrpersnl'和'T_Employees'都是表格。 – leeand00

+2

对不起,我应该更精确。是否存在一个名为'hrpersnl而不匹配T_Employees'的已保存查询? –

回答

4

在这种

  • 包含空格和 “滑稽人物” 的Access查询,表/查询和字段名,或

  • 是访问reserved words

必须用在[方括号]中。在这种情况下,[hrpersnl Without Matching T_Employees]是表格或查询名称,而不是涉及基表hrpersnlT-Employees的表达式。

+1

Upvote。出于很好的理由,在命名表,查询或其他Access数据库对象时包含空格被认为是不好的做法。它为该计划的运作造成了复杂性和危害。它不利于易读性(在这种情况下)。最后,这是未来任何迁移到另一个DBMS的障碍。 – Smandoli

相关问题