【问题标题】:Syntax error SQL语法错误 SQL
【发布时间】:2015-04-04 03:52:32
【问题描述】:

我正在尝试运行此 SQL 查询,但由于某种原因,它一直失败,说 Imp.FormularyID=F.FormularyID 行缺少运算符,我很困惑为什么。我仔细检查了语法,一切看起来都很好。对此问题的任何帮助将不胜感激。

UPDATE ShouldImportMetricsIDsTable as Imp
INNER JOIN FN_DataDump_ALL_02012015 as F
ON Imp.FormularyID=F.FormularyID
SET Imp.FormularyName=F.FormularyName, Imp.ClientName=F.ClientName
WHERE Imp.FormularyID=F.FormularyID

【问题讨论】:

  • 你不需要最后一行。它已经在加入中
  • 不使用别名会怎样?

标签: sql ms-access syntax sql-update vba


【解决方案1】:

正常的 SQL 语法是;

UPDATE Imp 
SET FormularyName=F.FormularyName, ClientName=F.ClientName
FROM ShouldImportMetricsIDsTable as Imp
INNER JOIN FN_DataDump_ALL_02012015 as F ON Imp.FormularyID=F.FormularyID

【讨论】:

    【解决方案2】:

    (1/2 加时)

    您的 Sql 方言可能不支持更新语句中的联接。

    在这种情况下,您可以求助于相关子查询:

     UPDATE ShouldImportMetricsIDsTable Imp
        SET Imp.FormularyName = (
                                   SELECT F1.FormularyName
                                     FROM FN_DataDump_ALL_02012015 F1
                                    WHERE F1.FormularyID = Imp.FormularyID
                                )
          , Imp.ClientName    = (
                                   SELECT F2.ClientName
                                     FROM FN_DataDump_ALL_02012015 F2
                                    WHERE F2.FormularyID = Imp.FormularyID
                                )
      WHERE EXISTS (
                SELECT 1
                  FROM FN_DataDump_ALL_02012015 F
                 WHERE F.FormularyID = Imp.FormularyID
            )
    

    这假定 FormularyID 列在各自的表中被限制为唯一(即 PK/AK)。

    【讨论】:

      【解决方案3】:

      如果我不使用别名,它会起作用。

      UPDATE ShouldImportMetricsIDsTable 
      INNER JOIN FN_DataDump_ALL_02012015
      ON ShouldImportMetricsIDsTable.FormularyID=FN_DataDump_ALL_02012015.FormularyID
      SET ShouldImportMetricsIDsTable.FormularyName=FN_DataDump_ALL_02012015.FormularyName, ShouldImportMetricsIDsTable.ClientName=FN_DataDump_ALL_02012015.ClientName
      WHERE ShouldImportMetricsIDsTable.FormularyID=FN_DataDump_ALL_02012015.FormularyID
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-31
        • 2015-03-22
        • 2016-12-13
        相关资源
        最近更新 更多