Ms Access - Missing运算符(LEFT JOIN)

时间:2015-09-19 13:07:32

标签: sql ms-access left-join

我在LEFT JOIN中遇到SQL查询问题,但是当我尝试查询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#  

2 个答案:

答案 0 :(得分:0)

在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#   

答案 1 :(得分:0)

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

有两张桌子时的语法

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

两个以上表格的语法

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

()确保写入其中的内容,充当表格。如果您有更多的表,那么您可以以相同的方式加入它们。您可以阅读有关在MS-Access here.

中加入多个表的更多信息

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

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#