我的目标是将tblWosampleTest的formulaId列设置为tbltest的formulaid列的值,其中tblwoSampleTest和tbltest具有相同的testid。 TblTest是一种包含每个testid信息的词汇表。每条记录都有一个唯一的testid以及一个包含该特定testid的公式代码的公式代码列。我为这些公式指定了值,但意识到它们也没有出现在tblwosampletest中,所以我正在编写一个脚本来将公式更改转换为tblWosampletest表。 tblWosampletest是一个包含已完成的所有工单的表。通过其WOID,sampleID和testid列的组合,每条记录都是唯一的。 testid列表示对工作单进行了哪些测试。还有一个公式代码栏。此公式化列很重要,因为tblWosampletest是子表格的记录源,需要正确显示该特定工单的公式。这是我想出的代码。我不擅长SQL,所以我希望有人告诉我,如果我的逻辑是正确的。
UPDATE tblWOSampleTest
JOIN tblTest t1
ON tblWOSampleTest.TestID=t1.TestID
WHERE tblWOSampleTest.TestID=t1.TestID
SET tblWOSampleTest.FormulaID = tbltest.formulaID
这是否有意义并实现我想要做的事情?以下是两张部分表格的图片供参考。
答案 0 :(得分:2)
多表UPDATE的语法可能有点奇怪,我发现这是最容易理解的:
UPDATE
t
SET
t.FormulaID = t1.formulaID
FROM
tblWOSampleTest t
INNER JOIN tblTest t1 ON t1.TestID = t.TestID;
答案 1 :(得分:1)
您的查询是正确的,但它有语法错误。 where子句应保留在查询的末尾,尽管在您的示例中并不是真的需要,因为您已经使用ON
在表之间建立了正确的链接。您还可以使用前缀为列名称的表别名。
UPDATE tblWOSampleTest t
INNER JOIN tblTest t1
ON t.TestID = t1.TestID
SET t.FormulaID = t1.formulaID