语法错误 SQL
Syntax error SQL
我正在尝试 运行 这个 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语法是;
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
(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)。
如果我不使用别名就可以了。
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
我正在尝试 运行 这个 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语法是;
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
(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)。
如果我不使用别名就可以了。
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