0

我有三张桌子:

categories (id)
product_models(id, category_id)
products(id, product_id, category_id)

每个表上都有记录(lorem ipsum 内容),我想连接数据。
我已经更改了 product_models,执行此查询:

    update product_models
    set category_id = (select id from categories order by RAND() limit 1)

如何使用单个查询将所有产品映射到产品模型并更新类别?

4

2 回答 2

1

您应该适当地添加对表的约束和引用,以便当您更新一个表时,其他表也将被更新。

于 2013-02-04T18:45:16.803 回答
1

假设你的第三个表结构是(id,product_model_id,category_id),另一个假设是你有一个复合外键(product_model_id,category_id),那么你必须像下面这样更新第三个表

UPDATE products P
INNER JOIN (SELECT id, category_id from product_models ) M
ON P.product_id = M.id
SET P.category_id = M.category_id
于 2013-02-04T18:49:44.253 回答