From: | Igor Neyman <ineyman(at)perceptron(dot)com> |
---|---|
To: | Kirk Wythers <wythe001(at)umn(dot)edu>, POSTGRES <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: How to INSERT INTO one table from another table, WHERE |
Date: | 2013-05-03 18:00:57 |
Message-ID: | A76B25F2823E954C9E45E32FA49D70EC1B7C99DF@mail.corp.perceptron.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> -----Original Message-----
> From: pgsql-general-owner(at)postgresql(dot)org [mailto:pgsql-general-
> owner(at)postgresql(dot)org] On Behalf Of Kirk Wythers
> Sent: Friday, May 03, 2013 1:51 PM
> To: POSTGRES
> Subject: [GENERAL] How to INSERT INTO one table from another table,
> WHERE
>
> I am trying to insert data from 2 columns in tableB (colX and colY)
> into the same two columns of tableB, with a join like where clause. Is
> this possible?
>
> For example:
>
> INSERT INTO tableA (colX, colY)
> (SELECT colX, colY
> FROM tableB
> WHERE
> tableA.blockname = tableB.block_name
> AND tableA.timestamp = tableB.timestamp) ;
>
If it's not the whole record but just some columns, you UPDATE them not INSERT:
UPDATE tableA A
SET colX = B.colx, colY = B.colY
FROM table B B
WHERE A. blockname = B.block_name
AND A.timestamp = B.timestamp;
Note the use of aliases (A, B).
b.t.w. "timestamp" - isn't a good choice for column name, being a data type it's on the list of reserved words.
Regards,
Igor Neyman
From | Date | Subject | |
---|---|---|---|
Next Message | Yang Zhang | 2013-05-03 20:06:22 | "Unlogged indexes" |
Previous Message | Kirk Wythers | 2013-05-03 17:51:20 | How to INSERT INTO one table from another table, WHERE |