2017-06-22 6 views
0

Existe-t-il un moyen de comparer deux tables identiques et d'extraire des lignes différentielles dans Informix DB?Comparer deux tables identiques et récupérer des lignes différentielles

Considérons les tables ci-dessous, où ID est la clé primaire.

TABLE A  

ID NAME EMAIL    PROFILE 
a1 ABC  [email protected]  student 
a2 XYZ  [email protected]  student 
a3 LMN  [email protected]  Staff 

TABLE B 

ID NAME EMAIL    PROFILE 
a1 ABC  [email protected]  student 
a2 XYZ  [email protected]  student 
a3 LMN  [email protected]  student 

bien vouloir me aider dans l'élaboration d'un SQL pour extraire des lignes du tableau A qui ne correspond pas à B. TABLEAU avec

sortie doit être:

ID NAME EMAIL    PROFILE 
a3 LMN  [email protected]  Staff 
+0

https: // stackoverflow .com/questions/2077807/sql-query-to-return-differences-between-two-tables lire ceci, pourrait vous donner une idée – Kuru

+0

c'est dupliquer – kielou

+0

Avez-vous essayé une recherche? Il existe de nombreux exemples déjà en ligne ici pour votre tâche –

Répondre

0
SELECT * 
FROM TABLE_A 
      LEFT JOIN TABLE_B 
       ON TABLE_A.ID = TABLE_B.ID 
        AND TABLE_A.[NAME] = TABLE_B.[NAME] 
        AND TABLE_A.EMAIL = TABLE_B.ID 
        AND TABLE_A.[PROFILE] = TABLE_B.[PROFILE] 
WHERE TABLE_B.[NAME] IS NULL 
+0

Sachez que la notation de soumission entre crochets est spécifique à MS SQL Server et à Sybase - les autres SGBD ne la prennent pas en charge. Dans Informix, l'utilisation de 'name' et de 'profile' comme noms de colonne ne causerait aucun problème non cité. –

+0

Merci Simone et Jonathan –