UPDATE FROM problem, multiple updates of same row don't seem to work - Mailing list pgsql-sql

From David Stanaway
Subject UPDATE FROM problem, multiple updates of same row don't seem to work
Date
Msg-id 1092082589.7197.3.camel@dmxnocws13.dialmex.net
Whole thread Raw
Responses Re: UPDATE FROM problem, multiple updates of same row don't seem to work  (Bruno Wolff III <bruno@wolff.to>)
List pgsql-sql
Here is an example:

CREATE TABLE tablea(id int PRIMARY KEY,flag int
);

CREATE TABLE tableb(aid int REFERENCES tablea(id),flag int
);

INSERT INTO tablea VALUES(1,0);
INSERT INTO tablea VALUES(2,0);

-- Flags for 1st row of tablea - When ORed, should be 7
INSERT INTO tableb VALUES(1,1);
INSERT INTO tableb VALUES(1,2);
INSERT INTO tableb VALUES(1,4);

-- Flags for 2nd row of tablea - When ORed, should be 5
INSERT INTO tableb VALUES(2,1);
INSERT INTO tableb VALUES(2,4);


UPDATE tablea
SET flag = tablea.flag | tableb.flag
FROM tableb
WHERE tablea.id = tableb.aid;


SELECT * from tablea;id | flag
----+------ 1 |    1 2 |    1

-- Desired output isid | flag
----+------ 1 |    7 2 |    5


Is there a way around this so that I can get the desired output?

-- 
David Stanaway <david@stanaway.net>


pgsql-sql by date:

Previous
From: Vlad Dimitriu
Date:
Subject: Re: Exception handling from trigger
Next
From: "Philippe Lang"
Date:
Subject: function expression in FROM may not refer to other relations of same query level