テンプレートとして機能する約 100 のレコードと、元のレコードを逆参照する 10000 を超えるコピー レコードを含むテーブルがあります。対応するオリジナルのコピーのフィールドを再初期化する必要がありますが、サブクエリから外部フィールドを参照できない理由がわかりません。
テーブルの例 ( SQLFiddle リンク):
ID OriginalID String
----------------------------
1 NULL original 1
2 NULL original 2
3 1 copy of 1
4 2 copy of 2
5 2 another copy of 2
望ましい結果:
1 no change
2 no change
3 string should change to 'original 1'
4 string should change to 'original 2'
5 string should change to 'original 2'
私が試したSQL:
update data as target set target.string=(select string from
(select string from data as source where source.id=target.originalid) as x);
エラー:
Unknown column 'target.originalid' in 'where clause'