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 is
id | flag
----+------
1 | 7
2 | 5
Is there a way around this so that I can get the desired output?
--
David Stanaway <[EMAIL PROTECTED]>
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html