基于另一个表更新字段

时间:2013-07-29 00:35:32

标签: sql sql-update

作为SQL的新手,您可以指出我正确的方向。我知道以下是错的,但我不确定原因。

UPDATE cus
SET cus.leg_no = new.leg_no
WHERE cus.c_no = new.c_no

cus表格null目前有leg_no。我想从new表更新它。我将加入两个表格中的c_no

我试过在网上搜索,但我感到更加困惑。这让我觉得我需要FROM,但有些东西告诉我使用SELECT而不是UPDATE。

2 个答案:

答案 0 :(得分:0)

UPDATE cus,new
SET cus.leg_no = new.leg_no
WHERE cus.c_no = new.c_no

答案 1 :(得分:0)

以下是执行此操作的标准方法:

UPDATE cus
SET cus.leg_no = (select new.leg_no from new WHERE cus.c_no = new.c_no)

这是SQL Server / MS访问方言的方法:

UPDATE cus
SET cus.leg_no = new.leg_no
FROM cus
  INNER JOIN new
    ON cus.c_no = new.c_no

请注意,使用标准方法,如果new中有多个行与cus中的特定行匹配,则会收到错误消息。使用SQL Server / MS访问方言表单时,系统将任意选择其中一行,并发出 no 警告或错误。