Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从表2到表1的SQL更新,其中_Sql_Ms Access - Fatal编程技术网

从表2到表1的SQL更新,其中

从表2到表1的SQL更新,其中,sql,ms-access,Sql,Ms Access,我正在尝试从表2中的数据更新表1,其中ID匹配。。。目前正在尝试下面的SQL脚本,它不适合我!任何帮助都会很好 UPDATE tbleVendorData SET tbleVendorData.VendorActive = tbleTemporary.F7 FROM tbleTemporary WHERE tbleTemporary.F1 (SELECT VendorNumber FROM tbleVendorData) 当我运行此脚本时,列VendorActive根本没有发生任何

我正在尝试从表2中的数据更新表1,其中ID匹配。。。目前正在尝试下面的SQL脚本,它不适合我!任何帮助都会很好

UPDATE tbleVendorData
   SET tbleVendorData.VendorActive = tbleTemporary.F7
  FROM tbleTemporary
 WHERE tbleTemporary.F1 (SELECT VendorNumber FROM tbleVendorData)

当我运行此脚本时,列VendorActive根本没有发生任何变化,我希望它能更新tbleTemporary的所有内容。F7

大概,您打算这样做:

UPDATE tbleVendorData INNER JOIN
       tbleTemporary
       ON tbleTemporary.F1 = tbleVendorData.VendorNumber
   SET tbleVendorData.VendorActive = tbleTemporary.F7

由于声明了应编辑的表,因此无需在列名之前再次写入该表,但必须在最后一行指定一些条件。 如果您想更新所有可以从SelectVendorNumber fromTbleVendorData检索的记录,那么您的查询应该是

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) 

在上述情况下,它将更新与供应商编号匹配的第一条记录

您是否缺少一个=符号?这很好!如果我想添加多个可以更新的列,该怎么办?理想情况下,我希望至少有8列updated@Maldred . . . 是的,您可以更新任意数量的列。
 UPDATE tbleVendorData
           SET tbleVendorData.VendorActive = tbleTemporary.F7
          FROM tbleTemporary
         WHERE tbleTemporary.F1 = (SELECT VendorNumber FROM tbleVendorData limit 1)