我有两张桌子:
map_sale_product(id, sale_id, product_id)
&安培;
sale_order(id,name,....).
我在sale_order中为prd_id添加了一列。现在我想将product_id的所有数据从map_sale_product复制到sale_order的product_id。
条件是,如果sale_id(map_sale_product)
和id(sale_order)
匹配,则应复制数据。
有没有办法在mysql中做到这一点? PLZ ..告诉我在mysql-workbench上的方法..
答案 0 :(得分:2)
如果要插入行,则可以使用插入选择
insert into sale_order (col1, col2, col3...)
select cola, colb, col3 ...
from map_sale_product
相反,如果您需要更新现有行,则可以将更新与内部联接
一起使用 update sale_order a
inner join map_sale_product b on a.sale_id =b.sale_id
set a.col1 = b.colA,
a.col2, = b.colB,
...
答案 1 :(得分:2)
您可以使用此查询通过使用带有更新的连接查询将数据从map_sale_product表复制到sale_order表:
UPDATE sale_order so
JOIN map_sale_product ms ON so.sale_id = ms.id
SET ms.product_id = so.product_id