gpt4 book ai didi

ms-access - "Query input must contain at least one table or query"错误 - 嵌套查询,MS Access

转载 作者:行者123 更新时间:2023-12-01 13:47:21 26 4
gpt4 key购买 nike

本质上,我们有时(?)需要提供对表的引用,即使我不需要它。例如。
Query input must contain atleast one table or query

我的问题是为什么要查询 q1 SELECT 1执行得很好,并给了我 1 row-1 列结果表,其中 1 作为值,但查询 q2 SELECT * FROM q1产生上述错误?

当我将 q1 更改为 SELECT 1 from dummy_table 时其中 dummy_table 是一个带有虚拟值的虚拟表,q2 运行良好。

为什么 q1 的内部结构与 q2 有任何关系? q1 本身就很好用。 q2 是否“展开” q1 然后编译语句SELECT * FROM (SELECT 1) (这本身会产生相同的错误)。我可以以某种方式强制 Access 不窥视 parent 的内部结构吗?
还有为什么SELECT * FROM (SELECT 1)给出错误和 SELECT 1工作正常?

最佳答案

Access 将只接受没有 FROM 的查询条款当“裸”SELECT单独使用,而不是作为另一个查询的一部分。

如您所见,SELECT 1当它是整个语句时有效。但是,如果您尝试使用“裸”SELECT,Access 会提示“查询输入必须至少包含一个表或查询”在另一个查询中,例如 SELECT q.* FROM (SELECT 1) AS q;
同样,虽然 SELECT 1SELECT 2单独使用时都有效,尝试 UNION它们会触发相同的错误:

SELECT 1
UNION ALL
SELECT 2

没有办法规避这个错误。正如您还发现的,保存“裸体” SELECT作为命名查询,然后在另一个中使用命名查询仍然会触发错误。这只是 Access db 引擎的一个限制,我使用过的每个 Access 版本(>= Access 2000)都是如此。

关于ms-access - "Query input must contain at least one table or query"错误 - 嵌套查询,MS Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34929826/

26 4 0