私はzeusとhadesの2つのデータベースを持っています。どちらのデータベースにもwxrecordというフィールドがあります。 Hadesでは、wxrecordはUNIXのタイムスタンプです。異なるデータベースから入れ子になったSELECTを使用したMYSQL UPDATE
hade.wxdataのSELECT/INSERTを使用して、zeus.alldataで新しいレコードを作成します。これにはhades.wxdataのwxrecordが含まれます。
新しいレコードがzeus.alldataで作成されたら、いくつかの計算を実行してから、その計算結果を1つの列に更新する必要があります。
私はzeusを更新したいと思いますが、zeusの特定のレコードは、hadesの対応するレコードに対応するものに更新します。私は両者でmax wxrecordを一致させ、両者が等しい限り更新したいと思います。
ここは、私が試したものです:
UPDATE zeus.alldata SET A='50' WHERE (SELECT max(wxrecord) FROM zeus.alldata) = (SELECT max(wxrecord) FROM hades.wxdata);
私はこのエラーを取得しておいてください。
ERROR 1093 (HY000): You can't specify target table 'alldata' for update in FROM clause
すべてのヘルプは、いずれの場合も
一般に、そのような1つのクエリ内の1つのテーブルと同じテーブルを更新および選択することはできません。 'alldata'テーブルの' INNER JOIN'をクエリに入れてみることができます。もっと見る:http://stackoverflow.com/questions/4268416/sql-update-with-sub-query-that-references-the-same-table-in-mysql – mitkosoft