0

我有这个:

UPDATE recibo SET liquidado = 1 
WHERE clave_recibo = (
    SELECT clave_recibo FROM recibo
    WHERE paciente_clave_paciente = (
        SELECT clave_paciente FROM paciente
        WHERE nombre_paciente = 'foo' AND 
        apellido_paterno_paciente = 'foo' AND
        apellido_materno_paciente = 'foo') 
    AND fecha_recibo = (
    SELECT fecha_recibo FROM recibo 
    WHERE paciente_clave_paciente = (
        SELECT clave_paciente FROM paciente
        WHERE nombre_paciente = 'foo' AND 
        apellido_paterno_paciente = 'foo' AND
        apellido_materno_paciente = 'foo')
    ORDER BY fecha_recibo DESC LIMIT 1) 
);

我收到以下错误:

错误代码:1093。您不能在 FROM 子句中指定目标表 'recibo' 进行更新

我读过你不能修改你在 FROM 子句中使用的同一个表有没有其他方法可以做到这一点?

4

2 回答 2

1

不知道它是否有效......加入表格,然后写你的 where 语句

更新recibo左连接recibor ON recibo.id = r。id设置...在哪里...

于 2013-06-12T16:43:06.217 回答
0

您可以从内部选择创建一个临时表,然后执行更新

其中 clave_recibo = (从 temptbl 中选择 clave_recibo)

加入

您还应该锁定表以进行写入,因为有人可能会在临时表创建和更新查询之后插入/更新某些内容。

然后解锁并删除临时表。

于 2013-06-12T20:18:45.993 回答