#1093 - 表'filtros'被指定两次,既作为'UPDATE'的目标,又作为单独的数据源

时间:2018-03-15 17:17:42

标签: mysql

我知道这是一个常见问题,但我找不到其他方法来解决这个问题。

更新filtros

SET ProvActual = 1876

WHERE Serial =(SELECT Serial FROM filtros WHERE ID = 3 LIMIT 1) AND ProvActual!= 1876

LIMIT 2

我想将最多2行更改为最大值,其中Serial与样本ID中的Serial相同。我该怎么写呢?我认为JOIN不适用于此,因为我使用的是来自两个不同行的数据。

1 个答案:

答案 0 :(得分:0)

您应该在subselect上使用内部联接

这应该是相同的,没有更新

    UPDATE filtros f 
    INNER JOIN ( 
    select serial from filtros f2
    INNER JOIN 

    (
        SELECT Serial FROM filtros WHERE ID=3 LIMIT 1

    ) t f2.serial = t.serial 
    WHERE ProvActual != 1876 
    LIMIT 2 ) t2 on f.serial = t2.serial