trouver la bonne clé père pour l'affecter à ses tables enfa

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : trouver la bonne clé père pour l'affecter à ses tables enfa

Re: trouver la bonne clé père pour l'affecter à ses tables

par moogli » 29 août 2014, 09:39

salut,

je ne comprend pas trop ta question.

tu veux corrigé le foutoir qui fk null ?

c'est le cas la seule solution c'est faire la liaison entre parents et enfants pour mettre à jour la table enfant.
si, en une requête ou plusieurs tu peux le faire c'est possible, sinon à la main.

cela peux ce faire dans une procédure stockée avec un curseur plus update pour chaque ligne enfant.
A priori la seconde requête doit pouvoir t'aider à cela.

et ensuite régler le problème d'insertion "foireuse" et ajouter une vrai fk (alter table xxx add constraint ...) pour éviter ce genre de problème ;)

@+

Re: trouver la bonne clé père pour l'affecter à ses tables

par yann18 » 28 août 2014, 11:24

bonjour,
tu peux exclure tous les enregistrements qui pointent à NULL :
select clé _prim enfant,att1, att2 , clé_prim_papa..
from table_ enfant te
inner join table_papa tp
on te.clé_etr=tp.clé_prim WHERE te.clé_etr IS NOT NULL OR te.clé_etr!='';

trouver la bonne clé père pour l'affecter à ses tables enfa

par perdu748 » 28 août 2014, 00:21

bonjour à tout le monde, j'ai un soucis:
dans ma base de données y a des tables enfants dont leurs clés étrangères sont null et je dois trouver la bonne clé du table père qui lie ces enfants à son papa
j'ai fais des requêtes de jointure mais j'ai pas trouvé la sol. donc y a t-il des astuces pour résoudre ce problème.
j'ai deux chemin pour joindre la table enfant et table père :
1. chemin direct :
select clé _prim enfant,att1, att2 , clé_prim_papa..
from table_ enfant te
inner join table_papa tp
on te.clé_etr=tp.clé_prim
mais là ca me servira à rien puisque te.clé_etr est null pour plusieurs lignes.
2.chemin un peu lourd, passer par 5 tables :
select ett1,attr2
from table_enfant te
inner join table2 t2 on te.clé_etr_ef= t2.clé_prim_t2
inner join table3 t3 on t2.clé_etr_t2=t3.clé_prim_t3
inner join table4 t4 on t3.clé_primt3= t4.clé_etr1_t4
inner join table_papa tp on t4.clé_etr_t4=tp.clé_prim
j'espère que c'est clair
merci pour vos participations