Mysql 如何将id\u supply设置为suply中的最后一个条目/id

Mysql 如何将id\u supply设置为suply中的最后一个条目/id,mysql,sql,max,Mysql,Sql,Max,我在查询中使用了: UPDATE breads SET id_supply = (SELECT max(id) FROM supply) WHERE id = (SELECT MAX(id) FROM breads) 我在供应中增加了一项新记录。现在我想让我的最后一块面包有最后一块面包的id #1093 - Table 'breads' is specified twice, both as a target for 'UPDATE' and as a separate source for

我在查询中使用了:

UPDATE breads
SET id_supply = (SELECT max(id) FROM supply)
WHERE id = (SELECT MAX(id) FROM breads)
我在供应中增加了一项新记录。现在我想让我的最后一块面包有最后一块面包的id

#1093 - Table 'breads' is specified twice, 
both as a target for 'UPDATE' and as a separate source for data

在MySQL中,如果不稍加修改,就无法很好地引用查询中随后更新的表

相反,请使用order by和limit:


如果@Gordon给出的答案不起作用,那么我想你应该尝试一下他在回答中所说的一些技巧

尽管Gordon的查询可以很好地处理我的测试数据,但如果对您不起作用,请尝试以下查询:

UPDATE breads
SET id_supply = (SELECT max(id) FROM supply)
WHERE id = (SELECT MAX(br.id) FROM (select *from breads) br);
单击此处查看详细信息

希望有帮助

注意:如果这个查询不起作用,那么应该添加模式和
将示例数据输入到您的问题中。

您的查询是否有效?我认为这是正确的。你有错误吗?怎么了?@Halfacht。如果是这种情况,则最后一行的id_电源已设置为最大电源id。
UPDATE breads
SET id_supply = (SELECT max(id) FROM supply)
WHERE id = (SELECT MAX(br.id) FROM (select *from breads) br);