【发布时间】:2014-11-04 21:16:33
【问题描述】:
我正在尝试在 Microsoft Access 2010 中使用子查询。这是表“Table1”:
ID data
--------
1 abc
2 def
子查询有两种可能的用法:
SELECT ID
FROM (SELECT ID FROM Table1) AS tmp
WHERE tmp.ID > 1
它有效,并给出了正确的结果 ID = 2。但是,
SELECT ID
FROM (SELECT ID FROM Table1) AS tmp
WHERE EXIST (SELECT ID FROM tmp WHERE ID > 1)
给出以下错误:
Microsoft Access 数据库引擎找不到输入表或查询“tmp”。确保它存在并且其名称拼写正确。
这不是使用子查询的好例子,但是在更复杂的情况下,我需要在另一个子查询中引用一个子查询的结果,例如:
SELECT Temp.rating
FROM (
SELECT S.rating, AVG(S.age) AS avgage
FROM Sailors S
GROUP BY S.rating) AS Temp
WHERE Temp.avgage = (
SELECT MIN(Temp.avgage)
FROM Temp)
此类错误的原因是什么以及如何解决?
【问题讨论】:
-
我的回答是努力纠正您在这里的一些误解。我不确定它是否直接回答了你的问题。您是否显示了您的具体查询以及您遇到的确切错误?
标签: sql ms-access subquery ms-access-2010