Bonjour,
J'ai actuellement ceci :
Ce qui me ramène une certaine quantité de données sur t1.a, t1.b, t2.c et le dernier champ t3.d pouvant être soit renseigné soit nul.select t1.a, t1.b, t2.c, t3.d
from table1 t1
inner join table2 t2
on t1.a=t2.a
left join table3 t3
on t2.c=t3.c
Maintenant je voudrais ramener uniquement ces données pour t3.d is null.
J'ai trouvé ceci : j'imbrique mes réponses dans une table globale que je scanne pour ne ramener que mes instances avec t3.d is null
Ou alors l'utilisation d'un MINUS : une première requête plus large avec un left join sur t3 puis un minus de la même requête mais dont le left join est remplacé par un inner join.select global.a, global.b, global.c, global.d from (select t1.a, t1.b, t2.c, t3.d from table1 t1
inner join table2 t2 on t1.a=t2.a
left join table3 t3 on t2.c=t3.c) global where global.d is null
select t1.a, t1.b, t2.c, t3.d from table1 t1
inner join table2 t2 on t1.a=t2.a
left join table3 t3 on t2.c=t3.c
MINUS
select t1.a, t1.b, t2.c, t3.d from table1 t1
inner join table2 t2 on t1.a=t2.a
inner join table3 t3 on t2.c=t3.c
Ma question est : N'y a-t-il pas une façon "plus propre" d'obtenir ce résultat ?
Merci d'avance pour votre aide.
Partager