PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

unisci due tabelle diverse e rimuovi le voci duplicate

Puoi usare UNION clausola, UNION verificherà la presenza di duplicati e verranno restituite solo righe distinte

SELECT * FROM table1
UNION
SELECT * FROM Table2

Modifica:per archiviare i dati di entrambe le tabelle senza duplicati, fallo

INSERT INTO TABLE1
SELECT * FROM TABLE2 A
WHERE NOT EXISTS (SELECT 1 FROM TABLE1 X 
                  WHERE A.NAME = X.NAME AND 
                  A.post_code = x.post_code)

Questo inserirà righe dalla tabella2 che non corrispondono al nome, codice postale dalla tabella1

L'alternativa è che puoi anche creare una nuova tabella e non toccare table1 e table2

CREATE TABLE TABLENAME AS
SELECT * FROM table1
UNION
SELECT * FROM Table2