2016-02-17 43 views
0

這是尋找在PSQL或pgAdmin的III解決方案:PSQL沒有更新,但唯一值複製到所有項目---外鍵更新

我已經設置了SQL命令,如下所示爲每this question

UPDATE members 
SET pers_id=P.pers_id 
--SELECT * 
FROM persons P 
INNER JOIN members M 
ON M.full_name=P.full_name 

但是,它並沒有使用單個值更新列pers_id,而是將第一個查詢中的數據點複製到所有條目中。

需要注意的是,pers_id是members表中的外鍵。

+0

是什麼'選擇P.pers_id,P.full_name從人P INNER JOIN成員M於M.full_name = P.full_name'告訴你? –

+2

[來自手冊](http://www.postgresql.org/docs/current/static/sql-update.html):「*請注意,目標表必須**不**出現在from_list中,除非您打算自我加入*「。鏈接的問題針對使用不同語法的SQL Server。 –

+0

以上查詢用所有相同的數字更新。 754,來自第一個條目的id,就好像它以'SELECT * FROM persons p'開頭的那樣。 – AER

回答

1

試試這個:

UPDATE members 
SET pers_id=persons.pers_id 
FROM persons 
WHERE members.full_name = persons.full_name 
+0

謝謝。出於某種原因,我認爲table.column語法在psql中不起作用 – AER