我需要更新表中的列。应该从另一个表中检索更新值。我提出的查询是声明:
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
如果我从多个表中检索,我必须在子句中指定两个表。我工作的两张表没有任何共同的列。但是,在 中的t1
两个值之间可以找到一个值t2
。第二个查询绝对正确吗?查询如何知道子句来自第一个表num
之后?where
我害怕我得到错误的价值观。