Récupérer des nulls si la ligne n'existe pas dans la table liée
Bonjour à tous,
J'ai 2 tables :
back_link_inc_ex_page
Id_link_footer
id_type_page
type_link
type_inc_ex
et
back_link_type_page
id_type_page
lib_fuseaction
lib_type_page
Les 2 tables sont liées par le champs id_type_page.
Le but du jeu est de récupérer pour un ensemble de back_link_type_page la valeur du type_inc_ex qui peut être soit 'E' soit 'I' mais je dois également savoir si la ligne n'existe pas dans back_link_inc_ex_page, car il y a en fait un 3eme état que le précédent développeur n'a pas jugé bon de stocké qui est l'état 'N' mais qui est représenté dans la BDD par l'absence de la jointure.
Le résultat de ce choix est que pour chaque back_link_type_page récupéré il doit requêter la BDD pour voir s'il y a une ligne ou non dans la table back_link_inc_ex_page. Et c'est ce que la requête que j'essaye de faire doit changer.
Donc voici ce que j'ai pour le moment :
Code:
1 2 3 4 5 6 7 8
|
SELECT BTP.ID_TYPE_PAGE, BTP.LIB_TYPE_PAGE, BIEP.TYPE_INC_EX, BIEP.ID_LINK_FOOTER, BIEP.TYPE_LINK
FROM BACKLINK_INC_EX_PAGE BIEP
LEFT JOIN BACKLINK_TYPE_PAGE BTP ON BTP.ID_TYPE_PAGE = BIEP.ID_TYPE_PAGE
WHERE BTP.LIB_FUSEACTION NOT LIKE '%]'
AND BIEP.TYPE_LINK = 'S'
AND BIEP.ID_LINK_FOOTER = 367
ORDER BY BIEP.ID_LINK_FOOTER ASC |
Le problème est que la jointure avec le left ne change rien car ce n'est pas la FK qui peut être nullable... et donc il ne me remonte que les entrées qui répondent à la condition de jointure.
Je pense que Oracle est complètement capable de faire cette opération mais je ne vois pas comment réaliser cette chose...
Merci d'avance pour toute l'aide apportée :)