Aller au contenu

requete SQL


jon152

Messages recommandés

@djey37 comme l'as dit Cadegenere, il n'y a pas de PK dans Yrefs et YrefDoc est une FK vers Doc.DocId. De plus, VariableId n'est pas une PK dans VariableValue, car tu peux avoir plusieurs fois la même variable pour des documents différents (donc des DocId différents).
@jon152 as tu regardé ma réponse plus haut ?

Il y a 16 heures, fragzepika a dit :

Putain ... tu as raison, j'ai une jointure en trop. Ca ne sert à rien de joindre à Doc pour les docuemernts enfants, on a besoin que de leurs Id déjà données par la colonne YrefDoc dans Yref.

Ca donnerait donc ça (en ajoutant la contrainte sur l'id de la variable) :


select var_c.*
from YrefDoc y left join VariableValue var_c on var_c.docId = y.YrefDoc
where y.DocId in ( select doc_p.docId from Doc doc_p where doc_p.filename = <nom du filename> )
and var_c.variableId = <id de la variable>

 

 

à l’instant, djey37 a dit :

J'ai rajouté le yrefsid parce qu'il n'y a pas d'identifiant sur cette table dans l'énoncé de @jon152 ce qui me parait aberrant.

Pour une table de jointure (n,n), j'en ai souvent vu sans colonne de PK spécifique. La PK était une clé composée des 2 colonnes (même en modélisant depuis un modèle objet avec hibernate).

Lien vers le commentaire
Partager sur d’autres sites

il y a 1 minute, fragzepika a dit :

@djey37 comme l'as dit Cadegenere, il n'y a pas de PK dans Yrefs et YrefDoc est une FK vers Doc.DocId. De plus, VariableId n'est pas une PK dans VariableValue, car tu peux avoir plusieurs fois la même variable pour des documents différents (donc des DocId différents).
@jon152 as tu regardé ma réponse plus haut ?

 

Donc il y a bien un problème de modélisation de bdd.

Je pense qu'il serait intéressant d'avoir un texte fonctionnel pour modéliser correctement le besoin (partir sur un schéma propre est quasiment obligatoire pour assurer la pérennité de l'appli). à partir de ça, on pourra répondre au besoin.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...