-- 示例代码:根据查询结果更新另一个表的数据
-- 假设有两个表:orders 和 order_status
-- orders 表包含订单信息,order_status 表包含订单的状态信息
-- 我们想根据 orders 表中的某些条件更新 order_status 表中的状态
-- 1. 使用 UPDATE 和 JOIN 来更新数据
UPDATE order_status os
JOIN orders o ON os.order_id = o.id
SET os.status = 'Shipped'
WHERE o.shipped_date IS NOT NULL;
-- 解释:
-- 这段代码会将 order_status 表中与 orders 表中 shipped_date 不为空的订单关联的状态更新为 'Shipped'。
-- 具体来说,它通过 JOIN 操作连接两个表,并根据条件 (o.shipped_date IS NOT NULL) 更新相应的记录。
-- 2. 使用子查询来更新数据
UPDATE order_status
SET status = 'Cancelled'
WHERE order_id IN (
SELECT id FROM orders WHERE cancelled = 1
);
-- 解释:
-- 这段代码会将 order_status 表中所有与 orders 表中 cancelled 字段为 1 的订单关联的状态更新为 'Cancelled'。
-- 子查询用于查找符合条件的订单 ID,然后在外部查询中使用这些 ID 更新 order_status 表。
下一篇:mysql查看当前执行的sql
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站