PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

joindre deux tables différentes et supprimer les entrées en double

Vous pouvez utiliser UNION clause, UNION vérifiera les doublons et seules les lignes distinctes seront renvoyées

SELECT * FROM table1
UNION
SELECT * FROM Table2

Modifier :pour stocker les données des deux tables sans doublons, procédez comme suit

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)

Cela insérera des lignes de la table2 qui ne correspondent pas au nom, code postal de la table1

L'alternative est que vous pouvez également créer une nouvelle table et ne pas toucher table1 et table2

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