OVH Cloud OVH Cloud

soucis de jointures avec hyperfile

5 réponses
Avatar
Jerome PAULIN
Bonjour,

J'essaye la requete suivante sous WDSQL :

select
*
from
t_personne
inner join t_cycle_personne on
t_personne.idt_personne=t_cycle_personne.idt_personne
inner join t_cycle on t_cycle.idt_cycle=t_cycle_personne.idt_cycle
where
idt_personne=5

et le logiciel me repond que "le mot inner est inattendu" ?????????

J'espère que je fais juste une erreur de syntaxe, pas que l'on ne peut
pas faire de jointures multiples en hyperfile.

Dans le cas ou ce serait juste une erreur de syntaxe, quelle est la
bonne syntaxe ?

Merci d'avance,

gg

5 réponses

Avatar
JeAn-PhI
Jerome PAULIN a exprimé avec précision :
Bonjour,

J'essaye la requete suivante sous WDSQL :

select
*
from
t_personne
inner join t_cycle_personne on
t_personne.idt_personne=t_cycle_personne.idt_personne
inner join t_cycle on t_cycle.idt_cycle=t_cycle_personne.idt_cycle
where
idt_personne=5

et le logiciel me repond que "le mot inner est inattendu" ?????????

J'espère que je fais juste une erreur de syntaxe, pas que l'on ne peut pas
faire de jointures multiples en hyperfile.

Dans le cas ou ce serait juste une erreur de syntaxe, quelle est la bonne
syntaxe ?

Merci d'avance,

gg



essayez ceci

select
*
from
t_personne inner join t_cycle_personne on
t_personne.idt_personne=t_cycle_personne.idt_personne
t_personne inner join t_cycle on
t_cycle.idt_cycle=t_cycle_personne.idt_cycle
where
idt_personne=5

--
Cordialement JeAn-PhI
Avatar
JeAn-PhI
JeAn-PhI vient de nous annoncer :
Jerome PAULIN a exprimé avec précision :
Bonjour,

J'essaye la requete suivante sous WDSQL :

select
*
from
t_personne
inner join t_cycle_personne on
t_personne.idt_personne=t_cycle_personne.idt_personne
inner join t_cycle on t_cycle.idt_cycle=t_cycle_personne.idt_cycle
where
idt_personne=5

et le logiciel me repond que "le mot inner est inattendu" ?????????

J'espère que je fais juste une erreur de syntaxe, pas que l'on ne peut pas
faire de jointures multiples en hyperfile.

Dans le cas ou ce serait juste une erreur de syntaxe, quelle est la bonne
syntaxe ?

Merci d'avance,

gg



essayez ceci

select
*
from
t_personne inner join t_cycle_personne on
t_personne.idt_personne=t_cycle_personne.idt_personne
t_personne inner join t_cycle on t_cycle.idt_cycle=t_cycle_personne.idt_cycle
where
idt_personne=5



oups vous aurez fais la correction
select
*
from
t_personne inner join t_cycle_personne on
t_personne.idt_personne=t_cycle_personne.idt_personne
t_cycle_personne inner join t_cycle on
t_cycle.idt_cycle=t_cycle_personne.idt_cycle
where
idt_personne=5

--
Cordialement JeAn-PhI
Avatar
Jerome PAULIN
JeAn-PhI a écrit :


select
*
from
t_personne inner join t_cycle_personne on
t_personne.idt_personne=t_cycle_personne.idt_personne
t_personne inner join t_cycle on
t_cycle.idt_cycle=t_cycle_personne.idt_cycle
where
idt_personne=5




Ca semble fonctionner a une virgule près. Est ce aussi valable pour les
jointures multiples (voir mon exemple ci après)

j'ai trouvé une solution qui consiste à mettre la jointure dans le
WHERE, mais c'est beaucoup moins facile à lire :

select
*
from
t_personne,
t_cycle_personne,
t_cycle,
t_periode_cycle
where
t_personne.idt_personne=t_cycle_personne.idt_personne and
t_cycle.idt_cycle=t_cycle_personne.idt_cycle and
t_periode_cycle.idt_cycle=t_cycle.idt_cycle and
idt_personne=5

Cordialement,

gg
Avatar
JeAn-PhI
Jerome PAULIN a exprimé avec précision :
JeAn-PhI a écrit :


select
*
from
t_personne inner join t_cycle_personne on
t_personne.idt_personne=t_cycle_personne.idt_personne
t_personne inner join t_cycle on
t_cycle.idt_cycle=t_cycle_personne.idt_cycle
where
idt_personne=5




Ca semble fonctionner a une virgule près. Est ce aussi valable pour les
jointures multiples (voir mon exemple ci après)

j'ai trouvé une solution qui consiste à mettre la jointure dans le WHERE,
mais c'est beaucoup moins facile à lire :

select
*
from
t_personne,
t_cycle_personne,
t_cycle,
t_periode_cycle
where
t_personne.idt_personne=t_cycle_personne.idt_personne and
t_cycle.idt_cycle=t_cycle_personne.idt_cycle and
t_periode_cycle.idt_cycle=t_cycle.idt_cycle and
idt_personne=5

Cordialement,

gg



oui c'est pareil il faut répété les 2 tables qui forme la jointure

--
Cordialement JeAn-PhI
Avatar
JeAn-PhI
Jerome PAULIN a exprimé avec précision :
JeAn-PhI a écrit :


select
*
from
t_personne inner join t_cycle_personne on
t_personne.idt_personne=t_cycle_personne.idt_personne
t_personne inner join t_cycle on
t_cycle.idt_cycle=t_cycle_personne.idt_cycle
where
idt_personne=5




Ca semble fonctionner a une virgule près. Est ce aussi valable pour les
jointures multiples (voir mon exemple ci après)

j'ai trouvé une solution qui consiste à mettre la jointure dans le WHERE,
mais c'est beaucoup moins facile à lire :

select
*
from
t_personne,
t_cycle_personne,
t_cycle,
t_periode_cycle
where
t_personne.idt_personne=t_cycle_personne.idt_personne and
t_cycle.idt_cycle=t_cycle_personne.idt_cycle and
t_periode_cycle.idt_cycle=t_cycle.idt_cycle and
idt_personne=5

Cordialement,

gg



j'ai oublié un inner join <=> à la jointure dans un where en SQL

--
Cordialement JeAn-PhI