Requête SQL de fusionner les deux colonnes de deux tables dans une colonne de la table résultante?
J'ai les tableaux suivants:
T1
ID
1
2
3
T2
ID SERVICE
1 PSTN
1 ADSL
3 ADSL
T3
ID DEV
1 3G
3 2G
Je veux que la sortie
ID SERVICE/DEV
1 PSTN
1 ADSL
1 3G
2
3 ADSL
3 2G
Comment fusionner?
Je ne peux pas utiliser les classiques LEFT OUTER JOIN
.
Nombre Total dans la table de sortie pour un id doit être le résumé de T2+T3 (FOR ID=1 2+1=3)
mais pour ID=2
il doit également exister dans la table de sortie à vide de la deuxième colonne.
OriginalL'auteur Dejan | 2012-10-03
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement combiner les résultats des deux tableaux spécifiquement
T2
etT3
à l'aide deunion
à l'intérieur d'une sous-requête au plus tard le rejoindre avecT1
à l'aide deLEFT JOIN
. Essayez ceci,En outre, vous pouvez utiliser
COALESCE
si vous souhaitez personnaliser les colonnes ayantnull
valeurs. Ainsi dans l'exemple ci-dessous, depuis2
a pas de service, il va montrer-none-
au lieu denull
Voir SQLFiddle Démo
OriginalL'auteur John Woo
Voulez-vous de l'union/union de tous?
La
NOT IN
dans leWHERE
clause ne peut pas être le moyen le plus efficace pour ce faire. Mais est-ce le résultat que vous recherchez?OriginalL'auteur Gordon Linoff
Vous pouvez essayer cette.
OriginalL'auteur Orangecrush