2012-04-24 19 views
0

相関サブクエリを使用して、テーブル内のすべての行の日付を11日間更新しようとしています。私が実行した1つの問題は、私のサブクエリから選択しているテーブルをMySqlで更新できないということです。サブクエリの結果を一時テーブルとして保存することで、この問題を回避することができました。これは、サブクエリのwhere句に定義された値がある場合に機能します。私は外側のクエリを参照しようとすると、しかし、私が持っているMySqlは相関サブクエリを使用して日付を更新します

UPDATE cloud.vms v SET expirationdate=(
    SELECT date FROM (
     SELECT DATE_ADD(
      (SELECT expirationdate 
      FROM cloud.vms vm 
      WHERE vm.psname=v.psname), 
      INTERVAL 11 DAY) 
     AS date) 
    AS tmptbl) 

:: 『WHERE句』ここに私のクエリである(すなわちvm.psname = v.psname)私は中に「不明な列 『v.psname』を取得しますまた、インナーを使用しての(example from previous post)に参加見えた。しかし、私はこれを行う方法を確認していない。

答えて

1

私はそれを試していないが、なぜあなたはこの

UPDATE cloud.vms set expirationdate = DATE_ADD(expirationdate, INTERVAL 11 DAY) ; 
のように、DATE_ADDをしていません
+0

私はあまりにもスマートにしようとしていたと思います。Nettogrof – ferics2

関連する問題