首页 > 解决方案 > 使用外部查询结果的 MS Access SQL 子查询

问题描述

我正在尝试根据外部查询的结果运行子查询。我遇到的问题是,我没有使用外部查询,而是提示来自子查询的值。

SELECT Facilities.CustomerName, Facilities.FacilityName,
   Facilities.AnnualPlan, Facilities.AppCo1, 
   (SELECT YeildDB.CornYield
    FROM YeildDB
    WHERE Facilites.AppCo1 = YeildDB.FIPS) AS Expr1
FROM Facilities

目标是子查询应该使用 fromFacilities.AppCo1的值与 in 的值匹配,YeildDB.FIPS然后返回对应的 in 值YeildDB.CornYeild

目前,我收到一个提示,询问该YeildDB.FIPS值而不是使用外部查询值的子查询。

标签: sqlms-access

解决方案


您的代码应该可以工作。但是您也可以使用 a 来表达这一点LEFT JOIN

SELECT Facilities.CustomerName, Facilities.FacilityName,
       Facilities.AnnualPlan, Facilities.AppCo1, 
       YeildDB.CornYield
FROM Facilities LEFT JOIN
     YeildDB
     ON Facilties.AppCo1 = YeildDB.FIPS;

我注意到你拼错了Facilities——这可能就是你的版本不起作用的原因。这是使用表别名的原因之一:

SELECT f.CustomerName, f.FacilityName,
       f.AnnualPlan, f.AppCo1, 
       y.CornYield
FROM Facilities as f LEFT JOIN
     YeildDB as y
     ON f.AppCo1 = y.FIPS;

推荐阅读