作为 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 时。
作为 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 时。
UPDATE cus,new
SET cus.leg_no = new.leg_no
WHERE cus.c_no = new.c_no
这是执行此操作的标准方法:
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 访问方言形式,系统将任意选择其中一行,并且不会发出警告或错误。