0

私は3つのテーブルを持っています:

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

各テーブル(lorem ipsum content)にレコードがあり、データを接続したい。
このクエリを実行して、すでにproduct_modelsを変更しました:

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

すべての製品を製品モデルにマップし、カテゴリも更新する単一のクエリを使用するにはどうすればよいですか?

4

2 に答える 2

1

1 つのテーブルを更新すると他のテーブルも更新されるように、必要に応じてテーブルに制約と参照を追加する必要があります。

于 2013-02-04T18:45:16.803 に答える
1

3 番目のテーブル構造が (id, product_model_id, category_id) であると仮定すると、もう 1 つの仮定は、複合外部キー (product_model_id, category_id) があるということです。次に、3 番目のテーブルを次のように更新する必要があります。

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 に答える