了解引用其他表的SQL插入查询

时间:2016-03-12 18:47:01

标签: php mysql opencart

我首先要完整地解释我的设置。 我正在运行opencart,在很多情况下我想将制造商分配给整个类别。而不是进入并为每个单独的产品分配制造商,我知道这可以通过一个SQL查询完成。我希望这个答案和示例能让我在将来需要进行大规模更新时更好地理解

我有一个带有以下列标题的表oc_product

  

product_id model sku upc ean jan isbn mpn location quantity stock_status_id image manufacturer_id shipping price points_class_id date_available

然后我有一个名为oc_product_to_category的表,其中包含以下列标题

  

product_id category_id

我想根据产品参考oc_product_to_category的类别在oc_products中分配制造商ID。

例如......如果我希望category_id的所有产品都等于" 9"制造商ID为" 32"

感谢能够为我提供一点指导的任何人。

1 个答案:

答案 0 :(得分:1)

UPDATE oc_product, oc_product_to_category
SET oc_product.manufacturer_id = 32
WHERE
    oc_product.product_id = oc_product_to_category.product_id AND
    oc_product_to_category.category_id = 9

按照后续要求编辑:

试试这个:

INSERT INTO oc_product_filter(product_id, filter_id)
    SELECT oc_product_to_category.product_id, 42
    FROM oc_product_to_category
    WHERE oc_product_to_category.category_id = 9