J'ai une requète avec des join multiples. Je ne me souviens plus quelle
syntaxe valide utiliser !
Doit on mettre des virgules à chaque left outer join ?
Par ailleurs, avec MySQL, est ce que la syntaxe est la même qu'avec WD ?
Voici la requète:
"select T_CARACT._NOM," +...
" from T_CARACT,T_COL" +...
" left outer join T_DONTC on T_DONTC._IDCOL = T_COL._IDCOL" +...
" left outer join T_DONTL on T_DONTL._IDCOL = T_COL._IDCOL" +...
" left outer join T_DONNC on T_DONNC._IDCOL = T_COL._IDCOL" +...
" left outer join T_DONNL on T_DONNL._IDCOL = T_COL._IDCOL" +...
" left outer join T_DONM on T_DONM._IDCOL = T_COL._IDCOL" +...
" where T_COL._TBL = " + :_TBL +...
" and T_CARACT._CAR = T_COL._CAR"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre BOUSQUET
c'est bon sauf que tu aurais pu mettre un JOIN entre T_CARACT et T_COL
I.G.LOG a émis l'idée suivante :
Bonjour,
J'ai une requète avec des join multiples. Je ne me souviens plus quelle syntaxe valide utiliser ! Doit on mettre des virgules à chaque left outer join ? Par ailleurs, avec MySQL, est ce que la syntaxe est la même qu'avec WD ?
Voici la requète:
"select T_CARACT._NOM," +... " from T_CARACT,T_COL" +... " left outer join T_DONTC on T_DONTC._IDCOL = T_COL._IDCOL" +... " left outer join T_DONTL on T_DONTL._IDCOL = T_COL._IDCOL" +... " left outer join T_DONNC on T_DONNC._IDCOL = T_COL._IDCOL" +... " left outer join T_DONNL on T_DONNL._IDCOL = T_COL._IDCOL" +... " left outer join T_DONM on T_DONM._IDCOL = T_COL._IDCOL" +... " where T_COL._TBL = " + :_TBL +... " and T_CARACT._CAR = T_COL._CAR"
merci pour vous réponses
-- Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile. S'il n'était pas difficile, ce ne serait pas un problème. "
c'est bon sauf que tu aurais pu mettre un JOIN entre T_CARACT et T_COL
I.G.LOG a émis l'idée suivante :
Bonjour,
J'ai une requète avec des join multiples. Je ne me souviens plus quelle
syntaxe valide utiliser !
Doit on mettre des virgules à chaque left outer join ?
Par ailleurs, avec MySQL, est ce que la syntaxe est la même qu'avec WD ?
Voici la requète:
"select T_CARACT._NOM," +...
" from T_CARACT,T_COL" +...
" left outer join T_DONTC on T_DONTC._IDCOL = T_COL._IDCOL" +...
" left outer join T_DONTL on T_DONTL._IDCOL = T_COL._IDCOL" +...
" left outer join T_DONNC on T_DONNC._IDCOL = T_COL._IDCOL" +...
" left outer join T_DONNL on T_DONNL._IDCOL = T_COL._IDCOL" +...
" left outer join T_DONM on T_DONM._IDCOL = T_COL._IDCOL" +...
" where T_COL._TBL = " + :_TBL +...
" and T_CARACT._CAR = T_COL._CAR"
merci pour vous réponses
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
c'est bon sauf que tu aurais pu mettre un JOIN entre T_CARACT et T_COL
I.G.LOG a émis l'idée suivante :
Bonjour,
J'ai une requète avec des join multiples. Je ne me souviens plus quelle syntaxe valide utiliser ! Doit on mettre des virgules à chaque left outer join ? Par ailleurs, avec MySQL, est ce que la syntaxe est la même qu'avec WD ?
Voici la requète:
"select T_CARACT._NOM," +... " from T_CARACT,T_COL" +... " left outer join T_DONTC on T_DONTC._IDCOL = T_COL._IDCOL" +... " left outer join T_DONTL on T_DONTL._IDCOL = T_COL._IDCOL" +... " left outer join T_DONNC on T_DONNC._IDCOL = T_COL._IDCOL" +... " left outer join T_DONNL on T_DONNL._IDCOL = T_COL._IDCOL" +... " left outer join T_DONM on T_DONM._IDCOL = T_COL._IDCOL" +... " where T_COL._TBL = " + :_TBL +... " and T_CARACT._CAR = T_COL._CAR"
merci pour vous réponses
-- Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile. S'il n'était pas difficile, ce ne serait pas un problème. "
I.G.LOG
Bonjour et merci pour la réponse, Mais il me semblait qu'avec WD HF classic, il fallait répéter l'alias avant le left join et mettre des virgules... alors qu'avec d'autres bases la syntaxe est différente (notamment sous MySQL 4 ?!). Je vais faire un essai, mais ca m'impose de générer une analyse et des données de test (j'aurai voulu éviter ça avant d'être sûr) Encore merci
Bonjour et merci pour la réponse,
Mais il me semblait qu'avec WD HF classic, il fallait répéter l'alias avant
le left join et mettre des virgules... alors qu'avec d'autres bases la
syntaxe est différente (notamment sous MySQL 4 ?!).
Je vais faire un essai, mais ca m'impose de générer une analyse et des
données de test (j'aurai voulu éviter ça avant d'être sûr)
Encore merci
Bonjour et merci pour la réponse, Mais il me semblait qu'avec WD HF classic, il fallait répéter l'alias avant le left join et mettre des virgules... alors qu'avec d'autres bases la syntaxe est différente (notamment sous MySQL 4 ?!). Je vais faire un essai, mais ca m'impose de générer une analyse et des données de test (j'aurai voulu éviter ça avant d'être sûr) Encore merci
Firetox
Bonjour ,
non la syntaxe
SELECT * FROM matable1 left outer join matable2 on matable1.cle = maTAble2.cle
fonctionne tres bien sur HF je viens de faire le test avec le data center ca marche au poil
et sous mysql cette syntaxe est acceptée
Bon dev @+
"I.G.LOG" a écrit dans le message de news: 45125ff2$0$25935$
Bonjour et merci pour la réponse, Mais il me semblait qu'avec WD HF classic, il fallait répéter l'alias avant le left join et mettre des virgules... alors qu'avec d'autres bases la syntaxe est différente (notamment sous MySQL 4 ?!). Je vais faire un essai, mais ca m'impose de générer une analyse et des données de test (j'aurai voulu éviter ça avant d'être sûr) Encore merci
Bonjour ,
non la syntaxe
SELECT * FROM matable1 left outer join matable2 on matable1.cle =
maTAble2.cle
fonctionne tres bien sur HF
je viens de faire le test avec le data center ca marche au poil
et sous mysql cette syntaxe est acceptée
Bon dev
@+
"I.G.LOG" <iglog@free.fr> a écrit dans le message de news:
45125ff2$0$25935$ba4acef3@news.orange.fr...
Bonjour et merci pour la réponse,
Mais il me semblait qu'avec WD HF classic, il fallait répéter l'alias
avant
le left join et mettre des virgules... alors qu'avec d'autres bases la
syntaxe est différente (notamment sous MySQL 4 ?!).
Je vais faire un essai, mais ca m'impose de générer une analyse et des
données de test (j'aurai voulu éviter ça avant d'être sûr)
Encore merci
SELECT * FROM matable1 left outer join matable2 on matable1.cle = maTAble2.cle
fonctionne tres bien sur HF je viens de faire le test avec le data center ca marche au poil
et sous mysql cette syntaxe est acceptée
Bon dev @+
"I.G.LOG" a écrit dans le message de news: 45125ff2$0$25935$
Bonjour et merci pour la réponse, Mais il me semblait qu'avec WD HF classic, il fallait répéter l'alias avant le left join et mettre des virgules... alors qu'avec d'autres bases la syntaxe est différente (notamment sous MySQL 4 ?!). Je vais faire un essai, mais ca m'impose de générer une analyse et des données de test (j'aurai voulu éviter ça avant d'être sûr) Encore merci
Firetox
ca c'est normal car il n'y pas cascade des join par contre si la liason se fait de table en table pas besoin de l'alias et attention dans cette configuration MySQL n'aimera pas l'alias
par exemple en HF cela fonctionne : SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
la jointure sera plus complique sur MySQL mais faisable
"I.G.LOG" a écrit dans le message de news: 4512654b$0$5112$
Re-bonjour,
J'essai le cas de jointures multiples ! Après essais, sous WD HF classic (pas fait l'essai en HF C/S) les alias doivent être répétés à gauche du left join et séparés par des virgules, comme suit:
SELECT idolprolg from olprolg left outer join article on article.idarticle > olprolg.idarticle, olprolg left outer join prestat on prestat.idprestat > olprolg.numero where olprolg.numgrp = 0
Ca a l'air de fonctionner (faut je vérifie le résultat) et ça ne plante pas à l'exécution.
Mais je crois que sous MySQL (version 4), la syntaxe est différente ?! (pas de virgules) Merci de me confirmer (infirmer) ce doute
ca c'est normal car il n'y pas cascade des join
par contre si la liason se fait de table en table pas besoin de l'alias
et attention dans cette configuration MySQL n'aimera pas l'alias
par exemple en HF cela fonctionne :
SELECT * FROM
personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule
,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
la jointure sera plus complique sur MySQL mais faisable
"I.G.LOG" <iglog@free.fr> a écrit dans le message de news:
4512654b$0$5112$ba4acef3@news.orange.fr...
Re-bonjour,
J'essai le cas de jointures multiples !
Après essais, sous WD HF classic (pas fait l'essai en HF C/S) les alias
doivent être répétés à gauche du left join et séparés par des virgules,
comme suit:
SELECT idolprolg
from olprolg left outer join article on article.idarticle > olprolg.idarticle, olprolg left outer join prestat on prestat.idprestat > olprolg.numero where olprolg.numgrp = 0
Ca a l'air de fonctionner (faut je vérifie le résultat) et ça ne plante
pas
à l'exécution.
Mais je crois que sous MySQL (version 4), la syntaxe est différente ?!
(pas
de virgules)
Merci de me confirmer (infirmer) ce doute
ca c'est normal car il n'y pas cascade des join par contre si la liason se fait de table en table pas besoin de l'alias et attention dans cette configuration MySQL n'aimera pas l'alias
par exemple en HF cela fonctionne : SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
la jointure sera plus complique sur MySQL mais faisable
"I.G.LOG" a écrit dans le message de news: 4512654b$0$5112$
Re-bonjour,
J'essai le cas de jointures multiples ! Après essais, sous WD HF classic (pas fait l'essai en HF C/S) les alias doivent être répétés à gauche du left join et séparés par des virgules, comme suit:
SELECT idolprolg from olprolg left outer join article on article.idarticle > olprolg.idarticle, olprolg left outer join prestat on prestat.idprestat > olprolg.numero where olprolg.numgrp = 0
Ca a l'air de fonctionner (faut je vérifie le résultat) et ça ne plante pas à l'exécution.
Mais je crois que sous MySQL (version 4), la syntaxe est différente ?! (pas de virgules) Merci de me confirmer (infirmer) ce doute
I.G.LOG
Re-bonjour,
J'essai le cas de jointures multiples ! Après essais, sous WD HF classic (pas fait l'essai en HF C/S) les alias doivent être répétés à gauche du left join et séparés par des virgules, comme suit:
SELECT idolprolg from olprolg left outer join article on article.idarticle olprolg.idarticle, olprolg left outer join prestat on prestat.idprestat olprolg.numero where olprolg.numgrp = 0
Ca a l'air de fonctionner (faut je vérifie le résultat) et ça ne plante pas à l'exécution.
Mais je crois que sous MySQL (version 4), la syntaxe est différente ?! (pas de virgules) Merci de me confirmer (infirmer) ce doute
Re-bonjour,
J'essai le cas de jointures multiples !
Après essais, sous WD HF classic (pas fait l'essai en HF C/S) les alias
doivent être répétés à gauche du left join et séparés par des virgules,
comme suit:
SELECT idolprolg
from olprolg left outer join article on article.idarticle olprolg.idarticle, olprolg left outer join prestat on prestat.idprestat olprolg.numero where olprolg.numgrp = 0
Ca a l'air de fonctionner (faut je vérifie le résultat) et ça ne plante pas
à l'exécution.
Mais je crois que sous MySQL (version 4), la syntaxe est différente ?! (pas
de virgules)
Merci de me confirmer (infirmer) ce doute
J'essai le cas de jointures multiples ! Après essais, sous WD HF classic (pas fait l'essai en HF C/S) les alias doivent être répétés à gauche du left join et séparés par des virgules, comme suit:
SELECT idolprolg from olprolg left outer join article on article.idarticle olprolg.idarticle, olprolg left outer join prestat on prestat.idprestat olprolg.numero where olprolg.numgrp = 0
Ca a l'air de fonctionner (faut je vérifie le résultat) et ça ne plante pas à l'exécution.
Mais je crois que sous MySQL (version 4), la syntaxe est différente ?! (pas de virgules) Merci de me confirmer (infirmer) ce doute
Firetox
suite
par exemple en HF cela fonctionne : SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
mais pas en mySQL il faudrait en MySQL
SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel PersB LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi where personnel.matricule = Pers.matricule
par contre je ne sais pas si HF va rendre une reponse obtimise mais devrait passe
voila desolé pour les 2 parties du message
"Firetox" a écrit dans le message de news: 451266f6$0$32592$
ca c'est normal car il n'y pas cascade des join par contre si la liason se fait de table en table pas besoin de l'alias et attention dans cette configuration MySQL n'aimera pas l'alias
par exemple en HF cela fonctionne : SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
la jointure sera plus complique sur MySQL mais faisable
"I.G.LOG" a écrit dans le message de news: 4512654b$0$5112$
Re-bonjour,
J'essai le cas de jointures multiples ! Après essais, sous WD HF classic (pas fait l'essai en HF C/S) les alias doivent être répétés à gauche du left join et séparés par des virgules, comme suit:
SELECT idolprolg from olprolg left outer join article on article.idarticle >> olprolg.idarticle, olprolg left outer join prestat on prestat.idprestat >> olprolg.numero where olprolg.numgrp = 0
Ca a l'air de fonctionner (faut je vérifie le résultat) et ça ne plante pas à l'exécution.
Mais je crois que sous MySQL (version 4), la syntaxe est différente ?! (pas de virgules) Merci de me confirmer (infirmer) ce doute
suite
par exemple en HF cela fonctionne :
SELECT * FROM
personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule
,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
mais pas en mySQL
il faudrait en MySQL
SELECT * FROM
personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule
,personnel PersB LEFT JOIN emploi ON emploi.code_emploi =
obtenir.code_emploi
where personnel.matricule = Pers.matricule
par contre je ne sais pas si HF va rendre une reponse obtimise mais devrait
passe
voila desolé pour les 2 parties du message
"Firetox" <emprin.frederic@SQLManagerX.com> a écrit dans le message de news:
451266f6$0$32592$636a55ce@news.free.fr...
ca c'est normal car il n'y pas cascade des join
par contre si la liason se fait de table en table pas besoin de l'alias
et attention dans cette configuration MySQL n'aimera pas l'alias
par exemple en HF cela fonctionne :
SELECT * FROM
personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule
,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
la jointure sera plus complique sur MySQL mais faisable
"I.G.LOG" <iglog@free.fr> a écrit dans le message de news:
4512654b$0$5112$ba4acef3@news.orange.fr...
Re-bonjour,
J'essai le cas de jointures multiples !
Après essais, sous WD HF classic (pas fait l'essai en HF C/S) les alias
doivent être répétés à gauche du left join et séparés par des virgules,
comme suit:
SELECT idolprolg
from olprolg left outer join article on article.idarticle >> olprolg.idarticle, olprolg left outer join prestat on prestat.idprestat >> olprolg.numero where olprolg.numgrp = 0
Ca a l'air de fonctionner (faut je vérifie le résultat) et ça ne plante
pas
à l'exécution.
Mais je crois que sous MySQL (version 4), la syntaxe est différente ?!
(pas
de virgules)
Merci de me confirmer (infirmer) ce doute
par exemple en HF cela fonctionne : SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
mais pas en mySQL il faudrait en MySQL
SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel PersB LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi where personnel.matricule = Pers.matricule
par contre je ne sais pas si HF va rendre une reponse obtimise mais devrait passe
voila desolé pour les 2 parties du message
"Firetox" a écrit dans le message de news: 451266f6$0$32592$
ca c'est normal car il n'y pas cascade des join par contre si la liason se fait de table en table pas besoin de l'alias et attention dans cette configuration MySQL n'aimera pas l'alias
par exemple en HF cela fonctionne : SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
la jointure sera plus complique sur MySQL mais faisable
"I.G.LOG" a écrit dans le message de news: 4512654b$0$5112$
Re-bonjour,
J'essai le cas de jointures multiples ! Après essais, sous WD HF classic (pas fait l'essai en HF C/S) les alias doivent être répétés à gauche du left join et séparés par des virgules, comme suit:
SELECT idolprolg from olprolg left outer join article on article.idarticle >> olprolg.idarticle, olprolg left outer join prestat on prestat.idprestat >> olprolg.numero where olprolg.numgrp = 0
Ca a l'air de fonctionner (faut je vérifie le résultat) et ça ne plante pas à l'exécution.
Mais je crois que sous MySQL (version 4), la syntaxe est différente ?! (pas de virgules) Merci de me confirmer (infirmer) ce doute
I.G.LOG
Je vais essayer ce cas sous MySQL (mais faut que je l'installe !!!) Encore merci
"Firetox" a écrit dans le message de news:451266f6$0$32592$
ca c'est normal car il n'y pas cascade des join par contre si la liason se fait de table en table pas besoin de l'alias et attention dans cette configuration MySQL n'aimera pas l'alias
par exemple en HF cela fonctionne : SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
la jointure sera plus complique sur MySQL mais faisable
Je vais essayer ce cas sous MySQL (mais faut que je l'installe !!!)
Encore merci
"Firetox" <emprin.frederic@SQLManagerX.com> a écrit dans le message de
news:451266f6$0$32592$636a55ce@news.free.fr...
ca c'est normal car il n'y pas cascade des join
par contre si la liason se fait de table en table pas besoin de l'alias
et attention dans cette configuration MySQL n'aimera pas l'alias
par exemple en HF cela fonctionne :
SELECT * FROM
personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule
,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
la jointure sera plus complique sur MySQL mais faisable
Je vais essayer ce cas sous MySQL (mais faut que je l'installe !!!) Encore merci
"Firetox" a écrit dans le message de news:451266f6$0$32592$
ca c'est normal car il n'y pas cascade des join par contre si la liason se fait de table en table pas besoin de l'alias et attention dans cette configuration MySQL n'aimera pas l'alias
par exemple en HF cela fonctionne : SELECT * FROM personnel LEFT JOIN obtenir ON personnel.matricule = obtenir.matricule ,personnel LEFT JOIN emploi ON emploi.code_emploi = obtenir.code_emploi
la jointure sera plus complique sur MySQL mais faisable