2014-10-28 32 views
0

我的查詢出了什麼問題,它爲什麼不執行?使用NOT IN子查詢進行更新時出錯

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子句

+0

從子查詢中再次選擇或更好地使用JOIN。 – Mihai 2014-10-28 19:48:52

+0

我怎樣才能使用連接? – BernardoLima 2014-10-28 19:52:14

回答

1
UPDATE mbdb.pessoa mp 
LEFT JOIN mbdb.funcionario mf 
ON mp.cpf = mf.cpf 
SET status = 4 
WHERE funcionario.cpf IS NULL 
1

MySQL不會讓你更新記錄和使用子查詢你正在嘗試使用。

您可以將您的代碼更改爲此。

UPDATE mbdb.pessoa m 
SET m.status = 4 
WHERE NOT EXISTS (SELECT 1 FROM mbdb.pessoa WHERE id_pessoa= m.id_pessoa) 
相關問題