1

あるテーブルから別のテーブルに (変更を加えて) データを移動したいと考えています。

UPDATE table2 
SET val_new=(SELECT (table1.val_old - SUM(table3.val_2)) as some1 
FROM table3 
INNER JOIN table1 ON table3.id_some=.table1.id_some 
WHERE table3.id_typ<=2 
AND table3.id_status=1 
group by table3.id_some);

エラーがあります:

Error Code: 1242. Subquery returns more than 1 row

このクエリを修正するにはどうすればよいですか?

4

1 に答える 1

0

修正する最も簡単な方法は次のとおりです。

UPDATE table2 SET 
val_new=ifnull((
     SELECT (table1.val_old - SUM(table3.val_2)) as some1 
     FROM table3 
     INNER JOIN table1 ON table3.id_some=.table1.id_some 
     WHERE table3.id_typ<=2 
     AND table3.id_status=1 
     WHERE table3.table2_id = table2.id -- ADDED THIS LINE
     group by table3.id_some), val_new);
于 2012-12-22T22:20:40.537 に答える