2009-12-12 5 views
0

Bonjour les gars j'ai essayé de comparer deux tableaux similaires qui ont des colonnes différentesComparaison lignes de deux tables et le résultat et ouputting

Tableau 1 a colonnes ID_A, X, Y, Z et Tableau 2 a colonnes ID_B, X, y, Z

Si les deux valeurs des colonnes X ou y ou Z représentent = 1 le résultat de la requête serait colonnes de sortie

ID_A, ID_B, X, y, Z

Je pensais que ce serait un inte L'instruction rsect est là, mais j'ai des problèmes car le nom des colonnes et les valeurs de ID_A et ID_B sont complètement différents.

À quoi ressemblerait cette instruction SQL? J'apprécierais n'importe quelles idées, en me cognant la tête sur le mur pour celui-ci.

+0

... "X ou Y ou Z sont = 1" ?? vous voulez dire que X ou Y ou Z sont égaux ?? ou (X = 1) ou (Y = 1) ou (Z = 1) ?? – ram

Répondre

2

Pour les lignes de sortie qui sont dans les deux tables, une jointure interne fonctionnerait:

select  * 
from   table1 a 
inner join table2 b 
on   a.x = b.x and a.y = b.y and a.z = b.z 

Pour afficher la liste uniquement les lignes avec x = 1, y = 1 ou z = 1 dans les deux tableaux, ajoutez un ou clause comme;

where  a.x = 1 or a.y = 1 or a.z = 1 
+0

Mais comment ajouter le paramètre de if x, y, ou z = 1 –

+0

@Chris Allen: Vous pourriez ajouter une clause where pour cela? réponse éditée – Andomar

Questions connexes