这按预期工作:
SELECT "Mike" AS FName
Run Code Online (Sandbox Code Playgroud)
这失败,错误"查询输入必须包含至少一个表或查询":
SELECT "Mike" AS FName
UNION ALL
SELECT "John" AS FName
Run Code Online (Sandbox Code Playgroud)
这只是Jet/ACE数据库引擎的怪癖/限制还是我遗漏了什么?
本质上,我们有时(?)需要提供对表的引用,即使我不需要它。例如 查询输入必须包含至少一个表或查询
我的问题是为什么查询 q1SELECT 1执行得很好,并给了我 1 row-1 列结果表,其中 1 作为值,但查询 q2SELECT * FROM q1会产生上述错误?
当我将 q1 更改为SELECT 1 from dummy_tabledummy_table 是具有虚拟值的虚拟表时,q2 运行良好。
为什么 q1 的内部结构与 q2 有任何关系?q1 本身就很好用。q2 是否“展开” q1 然后编译语句
SELECT * FROM (SELECT 1)(它本身会产生相同的错误)。我可以以某种方式强制 Access 不窥视父母的内部结构吗?另外为什么SELECT * FROM (SELECT 1)会出现错误并且SELECT 1工作正常?