Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用不同数据库中的嵌套SELECT更新MYSQL_Php_Mysql_Sql Update - Fatal编程技术网

Php 使用不同数据库中的嵌套SELECT更新MYSQL

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,只

我有两个数据库:宙斯和哈迪斯。两个数据库都有一个名为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
表的
内部联接到查询中。请参阅此处的更多信息: