如何将id_supply设置为suply中的最后一个条目/ id

时间:2017-10-18 13:28:49

标签: mysql sql max

我已将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

2 个答案:

答案 0 :(得分:1)

在MySQL中,你不能在查询中引用随后更新的表(好吧,没有一点黑客)。

相反,请使用order bylimit

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

希望它有所帮助!

注意:如果此查询也不起作用,那么您应该添加架构和           将数据存入您的问题。