我试图从表2中的数据更新表1,其中ID匹配...当前尝试以下SQL脚本,它不适合我!任何帮助都会很棒。
UPDATE tbleVendorData
SET tbleVendorData.VendorActive = tbleTemporary.F7
FROM tbleTemporary
WHERE tbleTemporary.F1 (SELECT VendorNumber FROM tbleVendorData)
没有任何事情发生在Column" VendorActive"当我运行这个脚本时,我希望它会更新tbleTemporary.F7
中的所有内容答案 0 :(得分:1)
据推测,你打算这样:
UPDATE tbleVendorData INNER JOIN
tbleTemporary
ON tbleTemporary.F1 = tbleVendorData.VendorNumber
SET tbleVendorData.VendorActive = tbleTemporary.F7
答案 1 :(得分:0)
UPDATE vendor
SET vendor.VendorActive = temp.F7
FROM tbleVendorData vendor
join tbleTemporary temp on vendor.VendorNumber = temp.F1 --this is my guess
-- WHERE temp.F1 in (SELECT VendorNumber FROM tbleVendorData)
答案 2 :(得分:0)
因为你声明应该编辑哪个表,所以不需要在列名之前再次写表,但是你必须在最后一行指定一些条件。
如果您想更新可以从(SELECT VendorNumber FROM tbleVendorData)
检索的所有记录,那么您的查询应该是
UPDATE tbleVendorData
SET tbleVendorData.VendorActive = tbleTemporary.F7
FROM tbleTemporary
WHERE tbleTemporary.F1 in (SELECT VendorNumber FROM tbleVendorData)
如果您想更新一条记录,则必须在查询结束时设置限制
但是你是否写过像
这样的查询UPDATE tbleVendorData
SET tbleVendorData.VendorActive = tbleTemporary.F7
FROM tbleTemporary
WHERE tbleTemporary.F1 = (SELECT VendorNumber FROM tbleVendorData)
然后查询将不会执行,因为它将检索到许多记录,并且无法与1列进行比较,但如果您确实想要使用' ='运算符然后您的查询应该看起来像这样
UPDATE tbleVendorData
SET tbleVendorData.VendorActive = tbleTemporary.F7
FROM tbleTemporary
WHERE tbleTemporary.F1 = (SELECT VendorNumber FROM tbleVendorData limit 1)
在上述情况下,它将更新与供应商编号
匹配的第一条记录