Php 使用不同数据库中的嵌套SELECT更新MYSQL
我有两个数据库:宙斯和哈迪斯。两个数据库都有一个名为wxrecord的字段。在Hades上,wxrecord是一个Unix时间戳 我从hades.wxdata使用SELECT/INSERT在zeus.alldata中创建了一个新记录。这包括来自hades.wxdata的wxrecord 一旦在zeus.alldata上创建了新记录,我需要运行一些数学计算,然后用该计算的输出更新单个列 我想更新宙斯,但只更新宙斯上的特定记录,对应于它在冥府中的对应记录。我想在两者上匹配max wxrecord,只要它们相等,就更新 以下是我尝试过的:Php 使用不同数据库中的嵌套SELECT更新MYSQL,php,mysql,sql-update,Php,Mysql,Sql Update,我有两个数据库:宙斯和哈迪斯。两个数据库都有一个名为wxrecord的字段。在Hades上,wxrecord是一个Unix时间戳 我从hades.wxdata使用SELECT/INSERT在zeus.alldata中创建了一个新记录。这包括来自hades.wxdata的wxrecord 一旦在zeus.alldata上创建了新记录,我需要运行一些数学计算,然后用该计算的输出更新单个列 我想更新宙斯,但只更新宙斯上的特定记录,对应于它在冥府中的对应记录。我想在两者上匹配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
任何帮助都将不胜感激在任何情况下,我认为您确实需要此查询:
UPDATE zeus.alldata
SET A = '50'
WHERE wxrecord = (SELECT max(wxrecord) FROM hades.wxdata);
这将更新
zeus
中的记录,该记录在hades
中具有最大记录值。通常,您不能在一个查询中更新和选择一个相同的表。您可以尝试将alldata
表的内部联接到查询中。请参阅此处的更多信息: