Bonjour,
J'ai une requête comportant une jointure sur 4 tables et 4 left join. Je l'ai écrite sans soucis d'ordre dans un premier temps.
Tout va bien (je suis sur interbase) jusqu'à la mise en production sur firebird.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select ... from T1, T2, T3, T4 left join T5 on T5.ID = T1.ID5 left join T6 on T6.ID = T1.ID6 left join T7 on T7.ID = T4.ID7 left join T8 on T8.ID = T4.ID8 where ...
le message d'erreur suivant "no fetch current record".
A force de test je me suis rendu compte que la requête sous cette forme ne provoquait pas l'erreur :
Ma question donc, est-ce qu'il y a un ordre dans les left join ie. est-ce qu'il faut qu'il précèdent la table sur laquelle on fait la jointure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select ... from T1 left join T5 on T5.ID = T1.ID5 left join T6 on T6.ID = T1.ID6, T4 left join T7 on T7.ID = T4.ID7 left join T8 on T8.ID = T4.ID8, T2, T3 where ...
Si oui pourquoi cela fonctionne sur Interbase.
Et que ce passe-t-il si on fait des jointures plus complexes par exemple avec un "and" dans le premier left join.
Enfin pour faire plus général est-ce que quesqu'un a plus d'information sur ce sujet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part and T5.ID2 = T2.ID5
Merci d'avance
Partager