修改数据 / 更新行 |
UPDATE stock SET unit_price = unit_price * 1.05 WHERE manu_code = 'HRO';
UPDATE items SET total_price = quantity * (SELECT MAX (unit_price) FROM stock WHERE stock.stock_num = items.stock_num) WHERE items.order_num IN (SELECT order_num FROM orders WHERE ship_date IS NULL);
第一个 SELECT 语句返回单个值:在 stock 表中,对于某个特定的产品的最高价格。第一个 SELECT 语句是一个相关联的子查询,因为当来自 items 的值出现在第一个 SELECT 语句的 WHERE 子句中时,您必须为您更新的每一行都执行该查询。
第二个 SELECT 语句产生未装运的订单的订单编号的一个列表。它是一个执行一次的非相关的子查询。