gpt4 book ai didi

MySQL - 选择一行,但处理数据后插入多行

转载 作者:行者123 更新时间:2023-11-29 14:54:00 25 4
gpt4 key购买 nike

我在网上商店有 3 张 table :

jos_vm_category
category_id | distributor_code | ...
jos_vm_product
product_id | product_sku | ...
jos_vm_product_category_xref
category_id | product_id

我将新数据上传到临时表:

temp_product_traversal
product_sku | category_distributor_code | ...

我必须刷新 jos_vm_product_category_xref 表。

jos_vm_category.distributor_code 与 temp_product_traversal.category_distributor_code 相同,并且在两个表中长度都可以是 3,6,9 个字符。 3个字符长的代码是主类别,6,9个长字符是子类别的代码。我必须将产品放入其子类别和每个 super 类别中。例如:如果代码是VGAATIPCE,那么我必须将产品插入3个类别:

VGAATIPCE, VGAATI, VGA

因此,在这种情况下,我们需要在 jos_vm_product_category_xref 中添加 3 个新行。

是否可以通过一个 mysql 请求将 3 个新行插入到 jos_vm_product_category_xref 中?

最佳答案

JOIN 表达式可以在很多方面模仿 WHERE 表达式。 JOIN 中的一些 OR 应该能够处理您要查找的内容。

INSERT jos_vm_product_category_xref(category_id, product_id)
SELECT c.category_id, p.product_id from temp_product_traversal trav
JOIN jos_vm_product p ON trav.product_sku = p.product_sku
JOIN jos_vm_category c ON LEFT(trav.category_distributor_code,3) = c.distributor_code
OR LEFT(trav.category_distributor_code,6) = c.distributor_code
OR trav.category_distributor_code = c.distributor_code

关于MySQL - 选择一行,但处理数据后插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com