PostgreSQL更新列,JOIN超过3个表

时间:2016-04-06 22:02:27

标签: sql postgresql join sql-update

我有3个表格,我想更新table1(列status),其中包含来自status的信息(列table2)。 table1table2之间的链接位于表格table_con

http://www.sqlfiddle.com/#!15/6ce460/4

我考虑过join并使用join的结果来更新table1

select t1.status as t1status,t2.status as t2status,t1.p_id as t1pid, t2.x_id as t2xid
   from table1 t1
      JOIN table_con tc
      ON t1.p_id = tc.p_id

      JOIN table2 t2 
      ON t2.x_id = tc.x_id;

join到目前为止工作,但我不知道如何继续, 并且查询应该在psql中工作。感谢

1 个答案:

答案 0 :(得分:5)

在Postgres中,您可以在update声明中表达联接:

update table1 t1 
   set ?? = ??
   from table_con tc join
        table2 t2 
        on t2.x_id = tc.x_id
   where t1.p_id = tc.p_id;

使用您要设置的列和值填写set列。