You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL实现基于父产品的子产品customfields表数据增改需求

解决方案

可以利用MySQL的INSERT ... ON DUPLICATE KEY UPDATE语法结合表关联,实现子产品继承父产品佣金的插入/更新需求。

实现SQL

INSERT INTO customfields (product_id, commission)
SELECT 
    p_child.product_id,
    cf_parent.commission
FROM products p_child
JOIN products p_parent ON p_child.product_parent_id = p_parent.product_id
JOIN customfields cf_parent ON p_parent.product_id = cf_parent.product_id
WHERE p_child.seller_id > 1 AND p_child.product_parent_id != 0
ON DUPLICATE KEY UPDATE commission = VALUES(commission);

思路拆解

  • 表关联逻辑:
    • 用p_child指代需要处理的子产品(即products表中seller_id>1且product_parent_id≠0的记录)
    • 通过product_parent_id关联到对应的父产品p_parent,再通过父产品的product_id关联到customfields表中存储的父产品佣金数据cf_parent
  • 插入/更新控制:
    • 用INSERT ... SELECT批量获取子产品ID和对应父产品的佣金值
    • 依赖ON DUPLICATE KEY UPDATE逻辑:如果customfields表中已存在该product_id的记录,则更新其commission为父产品的佣金;如果不存在,则插入新的记录
  • 必要前提:需确保customfields表的product_id字段是主键或唯一索引,这样ON DUPLICATE KEY才能触发更新操作

执行结果验证

执行上述SQL后,customfields表将得到预期结果:

product_id    commission
    1             A
    2             A
    3             B
    4             A
    5             B
    6             B

内容的提问来源于stack exchange,提问作者user3358102

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 03:54:56