-- 示例代码:MySQL 两表关联更新
-- 假设有两个表:orders 和 customers
-- orders 表包含订单信息,customers 表包含客户信息
-- 我们想根据 customers 表中的客户等级更新 orders 表中的折扣信息
-- 创建示例表
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
customer_name VARCHAR(100),
customer_level VARCHAR(50)
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_amount DECIMAL(10, 2),
discount DECIMAL(5, 2)
);
-- 插入示例数据
INSERT INTO customers (customer_id, customer_name, customer_level) VALUES
(1, 'Alice', 'VIP'),
(2, 'Bob', 'Regular');
INSERT INTO orders (order_id, customer_id, order_amount, discount) VALUES
(101, 1, 200.00, 0.00),
(102, 2, 150.00, 0.00);
-- 更新 orders 表中的折扣信息,基于 customers 表中的客户等级
UPDATE orders o
JOIN customers c ON o.customer_id = c.customer_id
SET o.discount = CASE
WHEN c.customer_level = 'VIP' THEN 0.10 -- VIP 客户享受 10% 折扣
WHEN c.customer_level = 'Regular' THEN 0.05 -- 普通客户享受 5% 折扣
ELSE 0.00
END;
-- 查询更新后的结果
SELECT * FROM orders;
customers
和 orders
两个表,并插入了一些示例数据。UPDATE
语句结合 JOIN
关键字,将 orders
表与 customers
表进行关联。通过 CASE
语句根据客户的等级(customer_level
)设置不同的折扣(discount
)。orders
表,验证更新是否成功。上一篇:mysql 关联删除
下一篇:mysql 时间戳格式化
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站