将一列复制到另一列,两个单独的表

时间:2016-01-17 10:16:07

标签: mysql

我想将表A中一列的所有值复制到表B中的另一列。该列有100多行。我试过这个:

UPDATE nds_product_lang pl 
    SET description_short = (
        SELECT product_supplier_reference
          FROM nds_product_supplier ps
         WHERE ps.id_product = pl.id_product);

但它返回的是

  

#1242 - 子查询返回超过1行

即使我删除了WHERE条件,它也会返回相同的错误。我做错了什么?

2 个答案:

答案 0 :(得分:1)

试试这个

UPDATE nds_product_lang pl, nds_product_supplier ps
SET pl.description_short = ps.product_supplier_reference 
WHERE ps.id_product = pl.id_product

答案 1 :(得分:0)

您可以使用商店程序: 见下面的例子

CREATE DEFINER=`xxx`@`localhost` PROCEDURE `additem`()
BEGIN
declare no_record int default 0;
declare mycat varchar(45) default ''; //variable data destination
declare mycursor CURSOR FOR   // this point your source table
select field-name FROM yourtable;
declare continue handler for not found
set no_record = 1;
open mycursor;

add_item: LOOP
 FETCH mycursor INTO mycat;
 IF no_record = 1 THEN 
 LEAVE add_item;
 END IF;
 -- build email list
insert into dest_table values(val-field1,mycat, ect..); 
END LOOP add_item;

close  mycursor;

这项工作非常完美: - )