2014-07-24 82 views
2
UPDATE master as m 
SET m.husband = p.id 
From per as p 
where m.drid = p.drid AND p.address > 80000 AND p.address <= 154969 

我有一個名爲per的表,其列名爲id。基本上,我想在where條款的另一個表master中複製這些ID。PostgreSQL:錯誤:關係列不存在

但是我收到一個錯誤,說關係「master」的列「m」不存在。 m不是一列。我不確定我錯了哪裏?

+0

它是MySQL或PostgreSQL? –

+1

錯誤與子句「as m」有關。在這種情況下這是不可能的。此外,它很難理解,你真正想要實現的。試試這個:'UPDATE master SET husband =(SELECT id FROM per WHERE master.drid = per.drid AND per.address> 80000 AND per.address <= 154969) ;' –

+0

它是postgresql – user3579301

回答

3

試試像下面那樣;從SET操作刪除表的別名m並使其SET husband = p.id

UPDATE master m 
SET husband = p.id 
From per p 
where m.drid = p.drid 
AND p.address > 80000 
AND p.address <= 154969 

(OR)不使用表的別名都不像

UPDATE master 
SET husband = per.id 
From per 
where master.drid = per.drid 
AND per.address > 80000 
AND per.address <= 154969 

Postgres Documentation For More

相關問題