使用两个表上的连接更新查询

dba*_*ery 35 sql postgresql

我有customeraddress桌子.

查询:

SELECT *
FROM addresses a,
     customers b
WHERE a.id = b.id
Run Code Online (Sandbox Code Playgroud)

返回474条记录

对于这些记录,我想添加idcustomer表成cidaddress表.

示例:如果对于第一条记录,customer的id为9且id地址也为9,那么我想将9插入到地址表的cid列中.

我试过了:

UPDATE addresses a,
       customers b
SET a.cid = b.id
WHERE a.id = b.id
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

Mic*_*uen 66

这是Postgres UPDATE JOIN格式:

UPDATE address 
SET cid = customers.id
FROM customers 
WHERE customers.id = address.id
Run Code Online (Sandbox Code Playgroud)

以下是其他变体:http://mssql-to-postgresql.blogspot.com/2007/12/updates-in-postgresql-ms-sql-mysql.html


Wir*_*dIn 5

在连接条件中使用表别名:

update addresses a
set cid = b.id 
from customers b 
where a.id = b.id
Run Code Online (Sandbox Code Playgroud)