使用子查询来更新单列

您可以子查询返回的值更新在 SET 子句中指定的列。
UPDATE orders
          SET ship_charge =
          (SELECT SUM(total_price) * .07 FROM items
          WHERE orders.order_num = items.order_num)
          WHERE orders.order_num = 1001;

如果您正在更新表层级中的超级表,则 SET 子句不可包括引用子表的子查询。如果您正在更新表层级中的子表,则 SET 子句中的子查询可引用超级表,如果它仅引用超级表的话。也就是说,子查询必须使用 SELECT … FROM ONLY (supertable) 语法。