将列的数据复制到id比较的其他表列

时间:2017-11-18 12:12:22

标签: mysql database mysql-workbench

我有两张桌子:

 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上的方法..

2 个答案:

答案 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