Ms Access - 缺少运算符(LEFT JOIN)

Ms Access - Missing operator (LEFT JOIN)

我在 SQL 中使用 LEFT JOIN 查询时遇到问题,但是当我尝试查询 MDB 数据库时它不起作用。

这里是:

Select PH.[ID], PH.[SText], PH.[Datum] ,PHpol.[SText], PHpol.[Mnozstvi], PHpol.[kcJedn], PHpol.[RelSzDPH], PHpol.[SDph], skst.[ID] 
from PH LEFT JOIN PHpol ON PH.[ID] = PHpol.[RefAg] 
LEFT JOIN Skz ON PHpol.[RefSKz] = Skz.[ID] 
LEFT JOIN Skst ON Skz.[RefStruct] = Skst.[ID] 
WHERE RelforUh = 2 
AND RelCr=43 
AND Datum BETWEEN #2015-01-01# AND #2015-09-01#  

在 MS Access 中,多个连接需要括号:

Select PH.[ID], PH.[SText], PH.[Datum] ,PHpol.[SText], PHpol.[Mnozstvi], PHpol.[kcJedn], PHpol.[RelSzDPH], PHpol.[SDph], skst.[ID]
from ((PH LEFT JOIN 
       PHpol
       ON PH.[ID] = PHpol.[RefAg] 
      ) LEFT JOIN
      Skz 
      ON PHpol.[RefSKz] = Skz.[ID]
     ) LEFT JOIN
     Skst
     ON Skz.[RefStruct] = Skst.[ID]
WHERE RelforUh = 2 AND RelCr=43 AND
      Datum BETWEEN #2015-01-01# AND #2015-09-01#   

MS-Access 中,如果您需要查询超过 两个 tables,则需要添加 parentheses。结构是这样的..

当你有两个 tables

时的语法
Select <column list> 
From Table1 Join Table2
on Table1.Col = Table2.col
where <your conditions> 

两个以上的语法table.

Select <column list> 
From (Table1 Join Table2
on Table1.Col = Table2.col)
Join Table3 on Table2.col = Table3.col
where <your conditions> 

() 确保其中写入的任何内容都充当 table。如果您有更多 table,那么您可以用同样的方式加入他们。您可以阅读有关在 MS-Access here.

中加入多个 table 的更多信息

您可以按如下方式重新编写查询。

Select PH.[ID], PH.[SText], PH.[Datum] ,PHpol.[SText], PHpol.[Mnozstvi], PHpol.[kcJedn], PHpol.[RelSzDPH], PHpol.[SDph], skst.[ID] 
from ((PH LEFT JOIN PHpol ON PH.[ID] = PHpol.[RefAg])
LEFT JOIN Skz ON PHpol.[RefSKz] = Skz.[ID])
LEFT JOIN Skst ON Skz.[RefStruct] = Skst.[ID] 
WHERE RelforUh = 2 
AND RelCr=43 
AND Datum BETWEEN #2015-01-01# AND #2015-09-01#