mysql 基于父产品创建/更新值

j0pj023g  于 2023-05-21  发布在  Mysql
关注(0)|答案(1)|浏览(125)

我有两个mysql表
第一表“products”具有字段product_id、seller_id和product_parent_id,其定义产品的父product_Id。

product_id    seller_id    product_parent_id
    1             1                 0
    2             1                 0
    3             1                 0
    4             7                 2
    5             7                 3
    6             8                 3

第二个表“customfields”具有以下字段:product_id和佣金。在这个表中,我只定义了在第一个表中具有seller_id = 1和product_parent_id为0的佣金产品。

product_id    commission
    1             A
    2             A
    3             B

我想写一个mysql查询插入,如果已经可用,更新字段product_id和佣金在customfields表的基础上,父产品的子产品。
这意味着我想在customfields表中添加或更新seller_id > 1且定义了product_parent_id的产品,并使用父产品的佣金更新字段。
结果将是:

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

不幸的是,我完全不知道从哪里开始。能请人这么善良,至少帮助这是一个合乎逻辑的方法。
谢谢你

uqjltbpv

uqjltbpv1#

只需使用product_parent_id作为连接关系来连接productscustomfields表。然后将其用作INSERT语句中的源数据。
使用ON DUPLICATE KEY UPDATE更新行(如果它们已经存在)。

INSERT INTO customfields (product_id, commission)
SELECT p.product_id, c.commission
FROM products AS p
JOIN customfields AS c ON c.product_id = p.product_parent_id
ON DUPLICATE KEY UPDATE commision = VALUES(commission)

相关问题