Sql 3个表不支持联接表达式

Sql 3个表不支持联接表达式,sql,ms-access,vba,Sql,Ms Access,Vba,我正在与MS Access合作,试图将3个表连接在一起。但我收到消息“不支持联接表达式”。 基本上我只想连接两个表,它们是一个u01hWeekehcalendar和A00\u工厂。A00_装置需要3根立柱连接;工厂产品、工厂代码和工厂名称。Plant\u Product,Plant\u代码可以,但没有与Plant\u Product匹配的列。因此,我必须添加一个组 我不确定是不能在一个查询中完成,还是语法错误。或者,还有另一种方法可以做到这一点,而无需单独查询。 我还添加了我想要的图片,并尝试运

我正在与MS Access合作,试图将3个表连接在一起。但我收到消息“不支持联接表达式”。 基本上我只想连接两个表,它们是一个u01hWeekehcalendar和A00\u工厂。A00_装置需要3根立柱连接;工厂产品、工厂代码和工厂名称。Plant\u Product,Plant\u代码可以,但没有与Plant\u Product匹配的列。因此,我必须添加一个组 我不确定是不能在一个查询中完成,还是语法错误。或者,还有另一种方法可以做到这一点,而无需单独查询。 我还添加了我想要的图片,并尝试运行并获得错误

谢谢


您很幸运,因为您只需要一列。您可以使用相关子查询解决此问题:

SELECT . . .,
       (SELECT TOP (1) A00_Plant.HCA_StartDate
        FROM A00_Plant
        WHERE A_01HWeekEHCalendar.Audit_plantname = A00_Plant.Plant_Name 
 AND
              A_01HWeekEHCalendar.Audit_Plant = A00_Plant.Plant_Code AND 
              A_ProductGroup.R_Code = A00_Plant.Plant_Product
       ) as HCA_StartDate
FROM A_01HWeekEHCalendar LEFT JOIN
     A_ProductGroup
     ON A_01HWeekEHCalendar.Audit_Product = A_ProductGroup.R_Code ;

您确定上面的确切查询会出现此错误吗?在我看来这是正确的。我能想象的唯一可能导致问题的是你完全没有别名。但是,我认为别名应该是可选的。它是本地数据还是链接数据?根据这个:[link]()它可能是连接表达式周围缺少的一些括号。但是:在您的示例中,您加入了
A\u 01HWeekEHCalendar.Audit\u Product=A\u ProductGroup.R\u code
,在下一个加入
A\u ProductGroup.R\u code=A00\u Plant.Plant\u Product
,这意味着您可以只加入
A\u 01HWeekEHCalendar.Audit\u Product=A00\u Plant.Plant\u Product
,而不需要使用第三个表。@BData谢谢。这是本地数据。@JanB A_01HWeekEHCalendar.Audit_产品和A00_Plant.Plant_产品不匹配。我必须添加一个_ProductGroup,这会导致问题。
SELECT . . .,
       (SELECT TOP (1) A00_Plant.HCA_StartDate
        FROM A00_Plant
        WHERE A_01HWeekEHCalendar.Audit_plantname = A00_Plant.Plant_Name 
 AND
              A_01HWeekEHCalendar.Audit_Plant = A00_Plant.Plant_Code AND 
              A_ProductGroup.R_Code = A00_Plant.Plant_Product
       ) as HCA_StartDate
FROM A_01HWeekEHCalendar LEFT JOIN
     A_ProductGroup
     ON A_01HWeekEHCalendar.Audit_Product = A_ProductGroup.R_Code ;