我想将表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条件,它也会返回相同的错误。我做错了什么?
答案 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;
这项工作非常完美: - )