Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD12] [Requête] Jointure entre 3 tables

10 réponses
Avatar
Cyrille
Bonjour,

Je voudrais faire une requête avec deux jointures du style
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Je peux bien sur la faire dans l'éditeur graphique de requête mais
j'aimerais bien savoir s'il existe un moyen de la faire avec.

J'ai trifouiller ma jointure dans tous les sens et le truc le plus
proche que j'obtiens c'est
TableA LEFT OUTER JOIN TableB on (...),
TableA LEFT OUTER JOIN TableC on (...)

Ce qui bien sur ne fonctionne pas car on ne peut pas faire de requête
sur 2 fois la même table (ici TableA).

Merci de votre aide.

10 réponses

Avatar
patrice
"Cyrille" a "écrit" (??) dans le message de
news:4948c7d5$0$4085$

Je peux bien sur la faire dans l'éditeur graphique de requête mais
j'aimerais bien savoir s'il existe un moyen de la faire avec.



aie , bobo la tete... ca veut dire quoi ??

si on remplace "avec" pas "sans" ca peut coller.
dans ce cas:
- le faire avec l'éditeur graphique
- regarder le code sql généré pour avoir la réponse
Avatar
Cyrille
patrice a écrit :
"Cyrille" a "écrit" (??) dans le message de
news:4948c7d5$0$4085$

Je peux bien sur la faire dans l'éditeur graphique de requête mais
j'aimerais bien savoir s'il existe un moyen de la faire avec.



aie , bobo la tete... ca veut dire quoi ??

si on remplace "avec" pas "sans" ca peut coller.
dans ce cas:
- le faire avec l'éditeur graphique
- regarder le code sql généré pour avoir la réponse




Oui en fait je veux dire que je n'arrive pas faire la requête dans
l'éditeur de requête mais que j'aimerais bien la faire avec cet éditeur.
Avatar
Firetox
Bonjour,

la premiere syntae :
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)



est bien SQL 92 qu'est qui ne fonctione pas ?

pour faire une jointure sur 2 fois la meme table il faut qu'il y ai un alias

TableA LEFT OUTER JOIN TableB on (...),
TableA as A2 LEFT OUTER JOIN TableC on (A2.code = TableC.code...)

ne pas oublier dans ce cas la , et avoir dans le where
where TableA.code = A2.code

sur les cle primaire de la tableA

Bon dev
@+


"Cyrille" a écrit dans le message de news:
4948c7d5$0$4085$
Bonjour,

Je voudrais faire une requête avec deux jointures du style
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Je peux bien sur la faire dans l'éditeur graphique de requête mais
j'aimerais bien savoir s'il existe un moyen de la faire avec.

J'ai trifouiller ma jointure dans tous les sens et le truc le plus proche
que j'obtiens c'est
TableA LEFT OUTER JOIN TableB on (...),
TableA LEFT OUTER JOIN TableC on (...)

Ce qui bien sur ne fonctionne pas car on ne peut pas faire de requête sur
2 fois la même table (ici TableA).

Merci de votre aide.


Avatar
patrice
tu met les fichiers dans l'éditeur
si tu t'es pas gauffré dans les jointures, il te les traces
apres y'a pu qu'a faire click droit, editer les liaisons/jointure pour
affiner les inner/outer



"Cyrille" a écrit dans le message de
news:4948cd20$0$4062$
patrice a écrit :
> "Cyrille" a "écrit" (??) dans le message


de
> news:4948c7d5$0$4085$
>
>> Je peux bien sur la faire dans l'éditeur graphique de requête mais
>> j'aimerais bien savoir s'il existe un moyen de la faire avec.
>
> aie , bobo la tete... ca veut dire quoi ??
>
> si on remplace "avec" pas "sans" ca peut coller.
> dans ce cas:
> - le faire avec l'éditeur graphique
> - regarder le code sql généré pour avoir la réponse
>
>
Oui en fait je veux dire que je n'arrive pas faire la requête dans
l'éditeur de requête mais que j'aimerais bien la faire avec cet éditeur.


Avatar
Cyrille
Firetox a écrit :
Bonjour,

la premiere syntae :
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)



est bien SQL 92 qu'est qui ne fonctione pas ?

pour faire une jointure sur 2 fois la meme table il faut qu'il y ai un alias

TableA LEFT OUTER JOIN TableB on (...),
TableA as A2 LEFT OUTER JOIN TableC on (A2.code = TableC.code...)

ne pas oublier dans ce cas la , et avoir dans le where
where TableA.code = A2.code

sur les cle primaire de la tableA

Bon dev
@+


"Cyrille" a écrit dans le message de news:
4948c7d5$0$4085$
Bonjour,

Je voudrais faire une requête avec deux jointures du style
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Je peux bien sur la faire dans l'éditeur graphique de requête mais
j'aimerais bien savoir s'il existe un moyen de la faire avec.

J'ai trifouiller ma jointure dans tous les sens et le truc le plus proche
que j'obtiens c'est
TableA LEFT OUTER JOIN TableB on (...),
TableA LEFT OUTER JOIN TableC on (...)

Ce qui bien sur ne fonctionne pas car on ne peut pas faire de requête sur
2 fois la même table (ici TableA).

Merci de votre aide.






J'ai utilisé un outil externe pour travailler ma requête et elle passe
bien en faisant
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Après je ne sais pas si c'est SQL92 mais j'utilise ce système depuis
plusieurs années et quelques fois sur une dizaine de table.
La solution avec l'alias et le where ne me conviennent pas.

Si c'est impossible dans l'éditeur graphique je vais passer par du code SQL.
Avatar
Firetox
Bonjour,

dans l'editeur graphique il faudrait faire la jointure de A sur B (pour
avoir la premiere ligne
ensuite faire la jointure de B sur C pour avoir la deuxieme mais il faut
alors changer le On pour le mettre sur la table A
si bien sur on peut le faire

je tape toutes mes requetes car en fait j'utilise un outil qui permet
d'ecrire des requetes (code SQL) de les tester ensuite je copie le code dans
windev
sans passer par l'editeur de requetes une fois fait sur le frontal SQL, je
suis sur que les lignes renvoyées sont bien celles que je veux, et comme le
frontal permet de voir comment est utilisée la requete par le serveur , je
passe sous windev en dernier (optimisation SQL faites et test de charge
aussi ) apres c'est plus que du windev

bref je trouve que faire son code SQL (deja est formateur) ensuite on voit
bien ce que le resultat donne et ne pas avoir la surprise au moment de
l'execution

Bon dev
@+


"Cyrille" a écrit dans le message de news:
4948cfc6$0$18401$
Firetox a écrit :
Bonjour,

la premiere syntae :
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)



est bien SQL 92 qu'est qui ne fonctione pas ?

pour faire une jointure sur 2 fois la meme table il faut qu'il y ai un
alias

TableA LEFT OUTER JOIN TableB on (...),
TableA as A2 LEFT OUTER JOIN TableC on (A2.code = TableC.code...)

ne pas oublier dans ce cas la , et avoir dans le where
where TableA.code = A2.code

sur les cle primaire de la tableA

Bon dev
@+


"Cyrille" a écrit dans le message de
news: 4948c7d5$0$4085$
Bonjour,

Je voudrais faire une requête avec deux jointures du style
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Je peux bien sur la faire dans l'éditeur graphique de requête mais
j'aimerais bien savoir s'il existe un moyen de la faire avec.

J'ai trifouiller ma jointure dans tous les sens et le truc le plus
proche que j'obtiens c'est
TableA LEFT OUTER JOIN TableB on (...),
TableA LEFT OUTER JOIN TableC on (...)

Ce qui bien sur ne fonctionne pas car on ne peut pas faire de requête
sur 2 fois la même table (ici TableA).

Merci de votre aide.






J'ai utilisé un outil externe pour travailler ma requête et elle passe
bien en faisant
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Après je ne sais pas si c'est SQL92 mais j'utilise ce système depuis
plusieurs années et quelques fois sur une dizaine de table.
La solution avec l'alias et le where ne me conviennent pas.

Si c'est impossible dans l'éditeur graphique je vais passer par du code
SQL.


Avatar
Bruno
Bonjour,

C'est outil propre ou libre et téléchargeable quelque part ?

Bruno

Firetox a formulé la demande :
Bonjour,

dans l'editeur graphique il faudrait faire la jointure de A sur B (pour avoir
la premiere ligne
ensuite faire la jointure de B sur C pour avoir la deuxieme mais il faut
alors changer le On pour le mettre sur la table A
si bien sur on peut le faire

je tape toutes mes requetes car en fait j'utilise un outil qui permet
d'ecrire des requetes (code SQL) de les tester ensuite je copie le code dans
windev
sans passer par l'editeur de requetes une fois fait sur le frontal SQL, je
suis sur que les lignes renvoyées sont bien celles que je veux, et comme le
frontal permet de voir comment est utilisée la requete par le serveur , je
passe sous windev en dernier (optimisation SQL faites et test de charge aussi
) apres c'est plus que du windev

bref je trouve que faire son code SQL (deja est formateur) ensuite on voit
bien ce que le resultat donne et ne pas avoir la surprise au moment de
l'execution

Bon dev
@+


"Cyrille" a écrit dans le message de news:
4948cfc6$0$18401$
Firetox a écrit :
Bonjour,

la premiere syntae :
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)



est bien SQL 92 qu'est qui ne fonctione pas ?

pour faire une jointure sur 2 fois la meme table il faut qu'il y ai un
alias

TableA LEFT OUTER JOIN TableB on (...),
TableA as A2 LEFT OUTER JOIN TableC on (A2.code = TableC.code...)

ne pas oublier dans ce cas la , et avoir dans le where
where TableA.code = A2.code

sur les cle primaire de la tableA

Bon dev
@+


"Cyrille" a écrit dans le message de news:
4948c7d5$0$4085$
Bonjour,

Je voudrais faire une requête avec deux jointures du style
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Je peux bien sur la faire dans l'éditeur graphique de requête mais
j'aimerais bien savoir s'il existe un moyen de la faire avec.

J'ai trifouiller ma jointure dans tous les sens et le truc le plus proche
que j'obtiens c'est
TableA LEFT OUTER JOIN TableB on (...),
TableA LEFT OUTER JOIN TableC on (...)

Ce qui bien sur ne fonctionne pas car on ne peut pas faire de requête sur
2 fois la même table (ici TableA).

Merci de votre aide.






J'ai utilisé un outil externe pour travailler ma requête et elle passe bien
en faisant
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Après je ne sais pas si c'est SQL92 mais j'utilise ce système depuis
plusieurs années et quelques fois sur une dizaine de table.
La solution avec l'alias et le where ne me conviennent pas.

Si c'est impossible dans l'éditeur graphique je vais passer par du code
SQL.





--
Bruno A

suivre ce lien pour répondre :
http://cerbermail.com/?TF4s3h4ejs
;)
Avatar
Firetox
Bonjour,

il y en a a peu prés pour chacune des bases (SQLyog, SQLServer management
studio etc ....)
SQLManagerX data center (lui fait plusieurs bases) et permet de generer le
code windev mais un frontal SQL existe avec chaque base, il suffit de le
prendre de l'installer et de travailler avec.

Bon dev
@+


"Bruno" a écrit dans le message de news:

Bonjour,

C'est outil propre ou libre et téléchargeable quelque part ?

Bruno

Firetox a formulé la demande :
Bonjour,

dans l'editeur graphique il faudrait faire la jointure de A sur B (pour
avoir la premiere ligne
ensuite faire la jointure de B sur C pour avoir la deuxieme mais il faut
alors changer le On pour le mettre sur la table A
si bien sur on peut le faire

je tape toutes mes requetes car en fait j'utilise un outil qui permet
d'ecrire des requetes (code SQL) de les tester ensuite je copie le code
dans windev
sans passer par l'editeur de requetes une fois fait sur le frontal SQL,
je suis sur que les lignes renvoyées sont bien celles que je veux, et
comme le frontal permet de voir comment est utilisée la requete par le
serveur , je passe sous windev en dernier (optimisation SQL faites et
test de charge aussi ) apres c'est plus que du windev

bref je trouve que faire son code SQL (deja est formateur) ensuite on
voit bien ce que le resultat donne et ne pas avoir la surprise au moment
de l'execution

Bon dev
@+


"Cyrille" a écrit dans le message de
news: 4948cfc6$0$18401$
Firetox a écrit :
Bonjour,

la premiere syntae :
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)



est bien SQL 92 qu'est qui ne fonctione pas ?

pour faire une jointure sur 2 fois la meme table il faut qu'il y ai un
alias

TableA LEFT OUTER JOIN TableB on (...),
TableA as A2 LEFT OUTER JOIN TableC on (A2.code = TableC.code...)

ne pas oublier dans ce cas la , et avoir dans le where
where TableA.code = A2.code

sur les cle primaire de la tableA

Bon dev
@+


"Cyrille" a écrit dans le message de
news: 4948c7d5$0$4085$
Bonjour,

Je voudrais faire une requête avec deux jointures du style
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Je peux bien sur la faire dans l'éditeur graphique de requête mais
j'aimerais bien savoir s'il existe un moyen de la faire avec.

J'ai trifouiller ma jointure dans tous les sens et le truc le plus
proche que j'obtiens c'est
TableA LEFT OUTER JOIN TableB on (...),
TableA LEFT OUTER JOIN TableC on (...)

Ce qui bien sur ne fonctionne pas car on ne peut pas faire de requête
sur 2 fois la même table (ici TableA).

Merci de votre aide.






J'ai utilisé un outil externe pour travailler ma requête et elle passe
bien en faisant
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Après je ne sais pas si c'est SQL92 mais j'utilise ce système depuis
plusieurs années et quelques fois sur une dizaine de table.
La solution avec l'alias et le where ne me conviennent pas.

Si c'est impossible dans l'éditeur graphique je vais passer par du code
SQL.





--
Bruno A

suivre ce lien pour répondre :
http://cerbermail.com/?TF4s3h4ejs
;)




Avatar
Bruno
merci

Firetox a pensé très fort :
Bonjour,

il y en a a peu prés pour chacune des bases (SQLyog, SQLServer management
studio etc ....)
SQLManagerX data center (lui fait plusieurs bases) et permet de generer le
code windev mais un frontal SQL existe avec chaque base, il suffit de le
prendre de l'installer et de travailler avec.

Bon dev
@+


"Bruno" a écrit dans le message de news:

Bonjour,

C'est outil propre ou libre et téléchargeable quelque part ?

Bruno

Firetox a formulé la demande :
Bonjour,

dans l'editeur graphique il faudrait faire la jointure de A sur B (pour
avoir la premiere ligne
ensuite faire la jointure de B sur C pour avoir la deuxieme mais il faut
alors changer le On pour le mettre sur la table A
si bien sur on peut le faire

je tape toutes mes requetes car en fait j'utilise un outil qui permet
d'ecrire des requetes (code SQL) de les tester ensuite je copie le code
dans windev
sans passer par l'editeur de requetes une fois fait sur le frontal SQL, je
suis sur que les lignes renvoyées sont bien celles que je veux, et comme
le frontal permet de voir comment est utilisée la requete par le serveur ,
je passe sous windev en dernier (optimisation SQL faites et test de charge
aussi ) apres c'est plus que du windev

bref je trouve que faire son code SQL (deja est formateur) ensuite on voit
bien ce que le resultat donne et ne pas avoir la surprise au moment de
l'execution

Bon dev
@+


"Cyrille" a écrit dans le message de news:
4948cfc6$0$18401$
Firetox a écrit :
Bonjour,

la premiere syntae :
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)



est bien SQL 92 qu'est qui ne fonctione pas ?

pour faire une jointure sur 2 fois la meme table il faut qu'il y ai un
alias

TableA LEFT OUTER JOIN TableB on (...),
TableA as A2 LEFT OUTER JOIN TableC on (A2.code = TableC.code...)

ne pas oublier dans ce cas la , et avoir dans le where
where TableA.code = A2.code

sur les cle primaire de la tableA

Bon dev
@+


"Cyrille" a écrit dans le message de
news: 4948c7d5$0$4085$
Bonjour,

Je voudrais faire une requête avec deux jointures du style
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Je peux bien sur la faire dans l'éditeur graphique de requête mais
j'aimerais bien savoir s'il existe un moyen de la faire avec.

J'ai trifouiller ma jointure dans tous les sens et le truc le plus
proche que j'obtiens c'est
TableA LEFT OUTER JOIN TableB on (...),
TableA LEFT OUTER JOIN TableC on (...)

Ce qui bien sur ne fonctionne pas car on ne peut pas faire de requête
sur 2 fois la même table (ici TableA).

Merci de votre aide.






J'ai utilisé un outil externe pour travailler ma requête et elle passe
bien en faisant
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Après je ne sais pas si c'est SQL92 mais j'utilise ce système depuis
plusieurs années et quelques fois sur une dizaine de table.
La solution avec l'alias et le where ne me conviennent pas.

Si c'est impossible dans l'éditeur graphique je vais passer par du code
SQL.





-- Bruno A

suivre ce lien pour répondre :
http://cerbermail.com/?TF4s3h4ejs
;)







--
Bruno A

suivre ce lien pour répondre :
http://cerbermail.com/?TF4s3h4ejs
;)
Avatar
Cyrille
Bruno a écrit :
merci

Firetox a pensé très fort :
Bonjour,

il y en a a peu prés pour chacune des bases (SQLyog, SQLServer
management studio etc ....)
SQLManagerX data center (lui fait plusieurs bases) et permet de
generer le code windev mais un frontal SQL existe avec chaque base, il
suffit de le prendre de l'installer et de travailler avec.

Bon dev
@+


"Bruno" a écrit dans le message de news:

Bonjour,

C'est outil propre ou libre et téléchargeable quelque part ?

Bruno

Firetox a formulé la demande :
Bonjour,

dans l'editeur graphique il faudrait faire la jointure de A sur B
(pour avoir la premiere ligne
ensuite faire la jointure de B sur C pour avoir la deuxieme mais il
faut alors changer le On pour le mettre sur la table A
si bien sur on peut le faire

je tape toutes mes requetes car en fait j'utilise un outil qui
permet d'ecrire des requetes (code SQL) de les tester ensuite je
copie le code dans windev
sans passer par l'editeur de requetes une fois fait sur le frontal
SQL, je suis sur que les lignes renvoyées sont bien celles que je
veux, et comme le frontal permet de voir comment est utilisée la
requete par le serveur , je passe sous windev en dernier
(optimisation SQL faites et test de charge aussi ) apres c'est plus
que du windev

bref je trouve que faire son code SQL (deja est formateur) ensuite
on voit bien ce que le resultat donne et ne pas avoir la surprise au
moment de l'execution

Bon dev
@+


"Cyrille" a écrit dans le message de
news: 4948cfc6$0$18401$
Firetox a écrit :
Bonjour,

la premiere syntae :
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)



est bien SQL 92 qu'est qui ne fonctione pas ?

pour faire une jointure sur 2 fois la meme table il faut qu'il y
ai un alias

TableA LEFT OUTER JOIN TableB on (...),
TableA as A2 LEFT OUTER JOIN TableC on (A2.code = TableC.code...)

ne pas oublier dans ce cas la , et avoir dans le where
where TableA.code = A2.code

sur les cle primaire de la tableA

Bon dev
@+


"Cyrille" a écrit dans le message
de news: 4948c7d5$0$4085$
Bonjour,

Je voudrais faire une requête avec deux jointures du style
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Je peux bien sur la faire dans l'éditeur graphique de requête
mais j'aimerais bien savoir s'il existe un moyen de la faire avec.

J'ai trifouiller ma jointure dans tous les sens et le truc le
plus proche que j'obtiens c'est
TableA LEFT OUTER JOIN TableB on (...),
TableA LEFT OUTER JOIN TableC on (...)

Ce qui bien sur ne fonctionne pas car on ne peut pas faire de
requête sur 2 fois la même table (ici TableA).

Merci de votre aide.






J'ai utilisé un outil externe pour travailler ma requête et elle
passe bien en faisant
tableA
LEFT OUTER JOIN tableB on (...)
LEFT OUTER JOIN tableC on (...)

Après je ne sais pas si c'est SQL92 mais j'utilise ce système
depuis plusieurs années et quelques fois sur une dizaine de table.
La solution avec l'alias et le where ne me conviennent pas.

Si c'est impossible dans l'éditeur graphique je vais passer par du
code SQL.





-- Bruno A

suivre ce lien pour répondre :
http://cerbermail.com/?TF4s3h4ejs
;)









Oui moi aussi j'utilise un éditeur extérieur et d'habitude je fais comme
toi mais là j'ai un projet avec une analyse et je me demandais comment
faire.