MySQL のマニュアルに下記の記述があります
「サブクエリは SELECT ステートメントと同じく、UPDATE ステートメントや DELETE ステートメントでも正式に使用できるので、UPDATE ステートメント内の割り当てにサブクエリを使用しても問題ありません。 しかし、サブクエリの FROM 節と更新対象の両方に同じテーブル(この場合、テーブル t1)を使用することはできません。」
UPDATE 文や DELETE 文のサブクエリには
更新対象のテーブルは指定できないとのことですね。
実際、これをやるとエラーになります。
以下はこれを回避するひとつの方法です。
外部結合を使います。
UPDATE MAIN LEFT OUTER JOIN SUB ON MAIN.DATE = SUB.DATE SET MAIN.VAL = SUB.VAL
ではでは