Mysql 使用“不在子查询中”更新时出错
我的查询出了什么问题,为什么不执行Mysql 使用“不在子查询中”更新时出错,mysql,Mysql,我的查询出了什么问题,为什么不执行 UPDATE mbdb.pessoa SET status = 4 WHERE id_pessoa NOT IN (SELECT id_pessoa FROM mbdb.pessoa mp INNER JOIN mbdb.funcionario mf ON mp.cpf = mf.cpf) 错误代码:您不能在FROM子句中指定更新的目标表“pessoa”MySQL将不允许您更新记录并使用您尝试使用的子查询 UPDATE mbdb.
UPDATE mbdb.pessoa
SET status = 4
WHERE id_pessoa NOT IN
(SELECT id_pessoa
FROM mbdb.pessoa mp
INNER JOIN mbdb.funcionario mf ON mp.cpf = mf.cpf)
错误代码:
您不能在FROM子句中指定更新的目标表“pessoa”MySQL将不允许您更新记录并使用您尝试使用的子查询
UPDATE mbdb.pessoa mp
LEFT JOIN mbdb.funcionario mf
ON mp.cpf = mf.cpf
SET status = 4
WHERE funcionario.cpf IS NULL
您可以将代码更改为此
UPDATE mbdb.pessoa m
SET m.status = 4
WHERE NOT EXISTS (SELECT 1 FROM mbdb.pessoa WHERE id_pessoa= m.id_pessoa)
再次从子查询中选择,或者最好使用联接。如何使用联接进行选择?