2010-07-14 7 views
1

Je voudrais joindre deux tables dans 1 table qui a une colonne commune et je dois essayer d'éviter tous les doublons.fusionner deux tables en une seule

+0

Il est pas clair ce que vous demandez à mon ami. –

+1

S'il vous plaît modifier votre question et ajouter les structures de table que vous essayez de fusionner. Nous pourrions probablement vous aider à mieux alors. –

Répondre

2

regard sur cette (nouvelle dans SQL Server 2008): MERGE (Transact-SQL)

Effectue insérer, mettre à jour ou supprimer opérations sur une table cible basée sur les résultats d'une jointure avec une table source . Par exemple, vous pouvez synchroniser deux tables en insérant, la mise à jour ou en supprimant des lignes dans une table en fonction des différences trouvées dans l'autre table.

0

Peut-être que vous voulez un SELECT DISTINCT et un LEFT JOIN

0

Vous pouvez faire une UNION et l'insérer dans la nouvelle table (notez que vous devez créer la première table)

INSERT INTO NewTable 

SELECT Column1 
FROM FistTable 

UNION 

SELECT Column2 
FROM SecondTable 
+0

Il a déclaré qu'il n'y a qu'une seule colonne en commun, cela ressemble plus à une jointure qu'à une union. – Malfist

+0

Ce serait aussi ma recommandation. Je les utilise tout le temps au travail pour joindre des ensembles de données communs tout en évitant les doublons. Gardez à l'esprit que les deux sélections auront besoin du même nombre et des mêmes types de colonnes si vous suivez cette route. – MattB

0

Espérons que cela aidera

MERGE <target_table> [AS TARGET] 
USING <table_source> [AS SOURCE] 
ON <search_condition> 
[WHEN MATCHED 
THEN <merge_matched> ] 
[WHEN NOT MATCHED [BY TARGET] 
THEN <merge_not_matched> ] 
[WHEN NOT MATCHED BY SOURCE 
THEN <merge_ matched> ]; 
Questions connexes