我的查询有什么问题,为什么不会执行?
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)
错误代码:
您无法指定目标表' pessoa'用于FROM子句中的更新
答案 0 :(得分:1)
UPDATE mbdb.pessoa mp
LEFT JOIN mbdb.funcionario mf
ON mp.cpf = mf.cpf
SET status = 4
WHERE funcionario.cpf IS NULL
答案 1 :(得分:1)
MySQL不允许您更新记录并使用您尝试使用的子查询。
您可以将代码更改为此。
UPDATE mbdb.pessoa m
SET m.status = 4
WHERE NOT EXISTS (SELECT 1 FROM mbdb.pessoa WHERE id_pessoa= m.id_pessoa)