【发布时间】:2018-12-02 17:50:33
【问题描述】:
我想了解在表示 MS Access 查询中的联接时何时打开和关闭括号,因为我正在使用 C++ 为 MS Access 查询开发一个查询构建器,以便我可以应用相同的代码来生成类似的查询。
SELECT
MasterTool.Name, Toolsets.SlaveToolID, Tools.MachineID
FROM
Tools AS MasterTool
LEFT JOIN
(
Toolsets LEFT JOIN Tools ON Toolsets.SlaveToolID = Tools.ID
)
ON MasterTool.ID = Toolsets.MasterToolID
编辑:
@LeeMac 根据您的解释,当我修改我之前提出的查询时
SELECT Tools.Name, Toolsets.SlaveToolID, Tools.MachineID FROM (Tools
LEFT JOIN Toolsets ON Toolsets.SlaveToolID = Tools.ID )
LEFT JOIN Tools ON Toolsets.MasterToolID = Tools.ID
我收到错误 Join Expression Not Supported 是否有任何简单的方法可以编写上述查询。
【问题讨论】:
-
一般来说,新手应该使用设计查看器在 MS Access GUI 中构建查询,然后在需要的地方使用保存的 SQL。事实上,由于 Access 引擎保存并缓存了最佳执行计划,因此在应用程序级别(即 C++)使用保存的查询而不是字符串运行查询更有效。
-
您在编辑中添加的 SQL 引用了
Tools表两次,因此,第二次引用需要别名,例如LEFT JOIN Tools t ON Toolsets.MasterToolID = t.ID