mysql Update子查询表被指定两次

时间:2018-07-29 15:16:35

标签: mysql sql sql-update

每当我执行此查询时,我都在尝试将此子查询的数量减少1。我认为它将在SQL Server上运行,但是为什么不能在MySQL上运行。我收到此错误:

表't1'被指定两次,既作为'UPDATE'的目标,又作为数据的单独来源

这是我的代码

  

更新tblbooks AS t1   设置t1.Quantity =(选择t2.Quantity-1                      来自tblbooks AS t2                     其中t2.BookId = 123)   其中t1.BookId = 123

1 个答案:

答案 0 :(得分:2)

您在那里不需要子查询-您可以将一列的计算重新分配回同一列:

UPDATE tblbooks
SET    Quantity = Quantity - 1
WHERE  BookId = 123