PostgreSQL更新列,JOIN超过3个表

fab*_*vys 3 sql postgresql join sql-update

我有3个表,我想用信息(列)更新table1(列status).表之间和之间的联系statustable2table1table2table_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;
Run Code Online (Sandbox Code Playgroud)

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

Gor*_*off 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;
Run Code Online (Sandbox Code Playgroud)

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