【发布时间】:2012-07-13 16:57:03
【问题描述】:
我对 SQL Server 的 T-SQL 更有经验,但我一直在 Access 中工作。我的问题是如何为具有自己的连接操作的子查询提供别名。我相信我在谈论嵌套连接操作。我知道我可以创建一个单独的查询,但我没有其他需要,并且希望尽可能保持对象列表干净。我当前的代码如下,我只显示 from 语句,因为它是错误的来源:
FROM
(
(
tblPropertySpecs
INNER JOIN
(
tblAssignedBuildingTypes
INNER JOIN qryAllPropertyIDs
ON tblAssignedBuildingTypes.PropertySpecID = qryAllPropertyIDs.PropertySpecID
)
ON (tblPropertySpecs.PropertySpecID = tblAssignedBuildingTypes.PropertySpecID)
AND (tblPropertySpecs.PropertySpecID = qryAllPropertyIDs.PropertySpecID)
)
INNER JOIN
(
tblRefConstructionTypes
INNER JOIN tblAssignedConstructionTypes
ON tblRefConstructionTypes.ConstructionTypeID = tblAssignedConstructionTypes.ConstructionTypeID
)
ON tblAssignedBuildingTypes.AssignedBuildingTypeID = tblAssignedConstructionTypes.AssignedBuildingTypeID
)
LEFT JOIN
(
tblRefFireSafetyDetectMethods
INNER JOIN tblAssignedFireSafetyDetections
ON tblRefFireSafetyDetectMethods.FireSafetyDetectedID = tblAssignedFireSafetyDetections.FireSafetyDetectedID
) [q1]
ON tblAssignedBuildingTypes.AssignedBuildingTypeID = q1.AssignedBuildingTypeID
WHERE (((qryAllPropertyIDs.Status)="Active"));
【问题讨论】:
-
有什么问题?您似乎有一个别名 [q1]。你可以说
As q1或简单地说(query here) a -
感谢 Remou,但我仍然遇到同样的问题。还有其他人有什么选择吗?
-
我不确定,我会倾向于给你所有的表加上别名
INNER JOIN tblAssignedConstructionTypes As a并确保你不使用与外部别名相同的内部别名,Access 就是这样奇怪。 -
谢谢,我会把它归结为 Access 问题并创建一个单独的查询,不值得花时间。我感谢你的帮助。如果您创建一个与您的评论相同的答案,我会给您信用。
-
我敢打赌它写着
Syntax Error in FROM Clause并指向 [q1]