2009-04-19 6 views
0

J'ai deux tables qui ont exactement la même structure.Recherche de requête SQL pour afficher les données de 2 tables qui ne sont pas commone entre les tables

Tableau MasterList Acct_id (9) Nom (25) Adresse (35) Ville (15) État (2) ZipCode (5)

et

Tableau NewMasterList Acct_id (9) Nom (25) Adresse (35) Ville (15) État (2) ZipCode (5)

J'ai besoin d'une requête qui affichera l'ID_Acct et le nom de tous les enregistrements de chaque table qui ne se trouvent PAS dans les deux tables.

Répondre

1

Je présume que la requête suivante devrait Aide-

select Acct_id,Name 
from MasterList 
where Acct_id not in (select distinct Acct_id from NewMasterList) 

union 

select Acct_id,Name 
from NewMasterList 
where Acct_id not in (select distinct Acct_id from MasterList) 

acclamations

+0

Bien que les deux réponses présentées aient donné les mêmes résultats corrects, j'ai choisi celle-ci car elle est un peu plus facile à comprendre, du moins à mon niveau pour l'instant. – Keniwan

3

En supposant acct_ID est la clé primaire:

SELECT COALESCE(ml.acct_ID, nml.acct_ID) AS AccountID 
    , COALESCE(ml.name, nml.name) AS Name 
FROM MasterList ml 
    FULL OUTER JOIN NewMasterList nml ON nml.Acct_ID=ml.Acct_ID 
WHERE nml.acct_ID IS NULL OR ml.acct_ID IS NULL 
+0

Cette requête a travaillé ainsi que la deuxième requête présentée. Chacun a renvoyé les données correctes, bien que le second utilisant l'union avec les sélections imbriquées était un peu plus facile à comprendre à mon niveau. – Keniwan

+0

Celui-ci devrait être beaucoup plus rapide, mais cela n'a probablement pas d'importance: c'est le genre de chose que vous faites une fois pour l'analyse. –

Questions connexes