SQL 2 jointures externes gauches sur la même table
Je suis en train de faire 2 jointures sur la même table et je veux les résultats suivants:
chnl_ptnr_key type1_ky type2_ky
------------- -------- --------
1 1 null
1 2 null
1 null 3
1 null 4
Mais au lieu de cela je suis
chnl_ptnr_key type1_ky type2_ky
------------- -------- --------
1 1 3
1 2 3
1 2 3
1 2 4
Ma requête est:
SELECT cp.chnl_ptnr_ky, cpmap1.ky as type1_ky, cpmap2.ky as type2_ky
FROM chnl_ptnr cp
LEFT OUTER JOIN chnl_ptnr_oos_map cpmap1 on (cp.chnl_ptnr_ky = cpmap1.chnl_ptnr_ky and cpmap1.typ = 'TYPE1')
LEFT OUTER JOIN chnl_ptnr_oos_map cpmap2 on (cp.chnl_ptnr_ky = cpmap2.chnl_ptnr_ky and cpmap2.typ = 'TYPE2')
WHERE cp.chnl_ptnr_ky = '1111'
Quelqu'un peut-il m'aider à changer cette requête si je reçois les valeurs null dans les type1_ky
et type2_ky
où la ligne est retournée à partir de la jointure autres?
J'ai besoin de ce format parce que je suis d'essayer de l'utiliser pour un iBATIS carte.
Merci beaucoup
- qu'est-ce que votre schéma pour
chnl_ptnr
etchnl_ptnr_oos_map
? - Très cryptique noms et en ne fournissant pas les données des tables.
Vous devez vous connecter pour publier un commentaire.
Dans votre exemple, les résultats de la première
LEFT JOIN
sont (1,1) et (1,2). Comme il n'y a pas (1,NULL), les annales, il n'y aura pas de (1,NULL,?) les enregistrements après la prochaineLEFT JOIN
.Vous avez probablement besoin d'une UNION, quelque part...