pif34 a écrit :
> je captue pas pourquoi y'a des valeurs en dur genre id_type_option = 3 ?
> ta jointure devrait plutot etre du genre:
> t1 left outer join t2 on t1.id_de_ma_fk = t2.id_de_ma_pk and t2.objet =
> 'rubrique' and t2.active = 'oui' ...
>
> ta requête reflete pas ton contenu..
>
>
> par ailleurs, si tu veux un coup de main, faut qu'à un moment donné on
> comprenne le schéma: quelle est l'autojointure, quelles sont les PK et les
> FK....
Parce que les valeurs en dur ne sont pas le coeur du problème à mon
avis, j'ai donc simplifié par une constante.
PK / FK je ne comprends pas....
Voici l'essence :
J'ai des objets de type rubrique, articles, etabliss, ... chacun
identifié par un id_objet.
Pour un objet identifié donné (ici objet = 'etabliss', et id_objet =
106), je cherche à savoir s'il existe une option identifiée attachée
dans la table options décrite.
L'option peut être directe : active = 'oui' ou 'non'
ou indirecte, héritée du type d'objet : active = 'rubrique'.
Si l'option est héritée, je veux récupérer la vraie valeur de l'option
dans la table.
Exemples :
Pour l'établissement 106, le typeoption 6 est active, on le sait
directement par l'id_option récupéré /12/
Pour l'établissement 106, le typeoption /3/ est définie par l'option
des rubriques, on le sait par l'id_option récupéré /11/.
Il faut alors joindre l'enregistrement de la même table pour lequel
objet = 'rubrique' et id_typeoption = 3 (et id_objet = 0).
On trouve alors 'oui' par l'id_option '6'
On récupère alors un unique enregistrement :
id_option objet id_objet active objet id_objet active
11 etablissement 106 rubrique rubrique 0 oui