我已将This Stack用于我的查询:
UPDATE breads
SET id_supply = (SELECT max(id) FROM supply)
WHERE id = (SELECT MAX(id) FROM breads)
我已经在供应中添加了新记录。现在我希望我的最后一个面包有最后一个supply.id
的id_supply#1093 - Table 'breads' is specified twice,
both as a target for 'UPDATE' and as a separate source for data
答案 0 :(得分:1)
在MySQL中,你不能在查询中引用随后更新的表(好吧,没有一点黑客)。
相反,请使用order by
和limit
:
UPDATE breads b
SET b.id_supply = (SELECT max(s.id) FROM supply s)
ORDER BY b.id DESC
LIMIT 1;
答案 1 :(得分:0)
如果@Gordon给出的答案不起作用,那么我猜你应该尝试一下他在答案中谈论的一点点。
虽然,Gordon的查询可以正常使用我的测试数据,但如果它不适合您,请尝试以下查询:
UPDATE breads
SET id_supply = (SELECT max(id) FROM supply)
WHERE id = (SELECT MAX(br.id) FROM (select *from breads) br);
点击此处查看Demo
希望它有所帮助!
注意:如果此查询也不起作用,那么您应该添加架构和 将数据存入您的问题。