错误"指定的字段可以引用FROM子句中的多个表"

Aar*_*ras 6 sql alias ms-access-2010

我正在使用Access 2010.

我的错误似乎是别名的结果.

我读过的解决方案指出应该在每个级别(我已经完成)使用不同的别名,并且Access喜欢大量的SELECT*(所以我也添加了这些)但是它没有解决我的问题.

我在ServiceZipSpec.Service_Product上收到错误.有什么指针吗?谢谢!

SELECT DISTINCT ServiceZipSpec.Service_Product, ServiceZipSpec.Specificity, Service_Availability.Available, Service_Availability.Zip_Code, Service_Availability.State
    FROM 
    ( SELECT * FROM 
       ( SELECT * FROM Service_Availability AS C_Avail1
         INNER JOIN 
            (
              SELECT C_Avail2.Service_Product, MAX(C_Avail2.Specificity) AS Spec
              FROM Service_Availability AS C_Avail2
              WHERE (C_Avail2.State = "TX" OR C_Avail2.State = "CW")
              GROUP BY C_Avail2.Service_Product 
            ) MaxSpec
         ON C_Avail1.Service_Product = MaxSpec.Service_Product
             AND C_Avail1.Specificity = MaxSpec.Spec
       ) Service_Spec
    LEFT JOIN TABLE_ZipCodes ON Service_Spec.State = TABLE_ZipCodes.State
    ) ServiceZipSpec

    WHERE ServiceZipSpec.Available = TRUE AND (ServiceZipSpec.State = "TX" OR ServiceZipSpec.State = "CW")
    ;
Run Code Online (Sandbox Code Playgroud)

Pin*_*nyM 6

您的问题的根源是您SELECT *在连接具有类似命名列的表时使用.尝试限制SELECT table_name.*,或只是选择您需要的列.

例如:

SELECT DISTINCT ServiceZipSpec.Service_Product, ServiceZipSpec.Specificity, Service_Availability.Available, Service_Availability.Zip_Code, Service_Availability.State
  FROM 
    ( SELECT Service_Spec.*, TABLE_ZipCodes.Zip_Code FROM 
       ( SELECT C_Avail1.* FROM Service_Availability AS C_Avail1
...
Run Code Online (Sandbox Code Playgroud)