我正在嘗試運行一個 postgresql 查詢,我需要在其中加入三個表作為更新查詢的一部分,但它在加入時出現錯誤。
UPDATE table1
join table2 on (table1.id=table2.id1)
join table3 on (table2.id2=table3.id)
SET table1.name='Test',
table3.equipment_code='ABC'
WHERE table1.id='21003';
你能相應地指導我嗎?
uj5u.com熱心網友回復:
未測驗,但類似這樣:
UPDATE table1
SET table1.name='Test'
FROM
table1 join table2 on table1.id=table2.id1
table2 join table3 on table2.id2=table3.id
WHERE
table3.equipment_code='ABC'
AND
table1.id='21003';
雖然我不確定你為什么不只是做:
UPDATE table1
SET table1.name='Test'
WHERE
table1.id='21003';
我沒有看到這一點,table2并且table3正在為UPDATE.
uj5u.com熱心網友回復:
每個更新查詢只能更新一張表。所以你需要的是兩個獨立的查詢,如下所示:
1- 使用 table1 更新 table3
UPDATE table3 SET equipment_code = t.whatever
FROM (SELECT * FROM table1 JOIN table2 ON table1.id = table2.id1) AS t
WHERE t.id2 = table3.id AND table1.id = '21003';
2-然后更新您的table1
UPDATE table1 SET name = 'Test' WHERE id = '21003';
順便說一句,如果您想了解有關更新連接語法的更多資訊,請訪問此處:https : //www.postgresqltutorial.com/postgresql-update-join/
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/382381.html
標籤:PostgreSQL的 加入 sql更新
上一篇:如何使用插入和連接在一起
