テーブルの列を更新する必要があります。更新値は別のテーブルから取得する必要があります。私が行ったクエリはステートメントです:
update db1.t1 set location=(select countryName from db1.t1, db2.t2 where t1.num
between t2.beginNum AND t2.endNum limit 1)
次のエラーが発生します。
Error Code: 1093 You can't specify target table t1 for update in FROM clause.
次に、句t1からテーブル名を削除するとFROM
update db1.t1 set location=(select countryName from db2.t2 where num
between t2.beginNum AND t2.endNum limit 1)
クエリは機能しましたが、正しく機能したかどうかはわかりません。私の知る限り、FROM複数のテーブルから取得する場合は、句で両方のテーブルを指定する必要があります。私が作業している2つのテーブルには、共通の列がありません。ただし、t1の2つの値の間にある値がありますt2。2番目のクエリは絶対に正しいですか?クエリは、句numの後に最初のテーブルからのものであることをどのように認識しますか?where間違った値を取得するのではないかと心配しています。