| 用途 | 跨表改删 |
|---|---|
| 语法 | UPDATE t1 JOIN t2 ON … SET t1.col = … WHERE … |
| DELETE | DELETE t1 FROM t1 JOIN t2 ON … |
多表更新
多表更新
UPDATE order_items oi
JOIN orders o ON o.id = oi.order_id
SET oi.status = 'closed'
WHERE o.status = 'closed' AND oi.status = 'open';多表删除
多表删除
DELETE u FROM users u
JOIN blacklist b ON b.user_id = u.id
WHERE b.expire_at < NOW();多表 UPDATE 的行更新顺序不确定(官方文档明确说明),并发场景要靠唯一约束而非更新顺序保证一致性。