it-swarm.com.de

Wie füge ich zwei Tabellen in postgresql zusammen?

Ich habe zwei Tische

tabelle 1:

name| count
xxx  | 1
yyyy | 2
zzzz | 3

tabelle 2:

name |count
xxx  | 1
aaa  | 5

Ich möchte, dass die resultierende Tabelle der folgenden Tabelle entspricht:

name | count
xxx  | 1
yyyy | 2
zzzz | 3
aaa  | 5

Weiß jemand, wie man das macht?

9
user1897937

Sie sollten UNION verwenden.

select * from table1
union
select * from table2

So fügen Sie in Tabelle 1 ein:

INSERT INTO TABLE1
select * from table2 
    where not exists(
            select * from table1 
                 where name=TABLE2.Name 
                       and count=TABLE2.Count
                     )
31
valex

Wir benötigen keinen speziellen MERGE/UPSERT-Befehl.

  1. Zusammenführen von Zeilen aus einer Tabelle in die andere.

    INSERT INTO table1
      (SELECT * FROM table2
       WHERE name NOT IN
           (SELECT name FROM table1));
    
  2. Zum Erstellen einer neuen Tabelle aus alten Tabellen.

    CREATE TABLE new_table AS
    (SELECT * FROM table1
    UNION
    SELECT * FROM table2);
    
7
Sandeep

Können Sie überprüfen, ob dies in Ihrem Entwickler funktioniert,

MERGE INTO table1 x
USING table2 b
ON ( x.name=b.name and x.count=b.count)
WHEN NOT MATCHED THEN
INSERT (x.name,x.count)VALUES(b.name,b.count);
0
Mari