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
Michel Walsh
Salut,
Il n'y en a pas sous Jet, et MS SQL Sever suggère fortement de ne pas utiliser *= ni =*. En somme, "remonter" dans le join:
De
... FROM a, b WHERE a.xyz *= b.uvw
on passe à
... FROM a LEFT JOIN b ON a.xyz = b.uvw
est-ce vraiment plus compliqué? pas vraiment, et c'est nettement plus souple lorsqu'il y a plusieurs jointures...
De plus, penser qu'on peut avoir autre chose que des = dans une jointure, la jointure explicite est nettement plus appropriée.
Enfin, la jointure explicite est toujours (logiquement) évaluée AVANT le WHERE.
Espérant être utile, Vanderghast, Access MVP
"Nicolas" wrote in message news:0c7b01c3bf3d$4fb973d0$ Mon problème est le suivant, il y a 2 facon d'écrire une jointure en SQL :
La 1ère générée par ACCESS :
SELECT F_DOCENTETE.DO_PIECE, F_COMPTET.CT_INTITULE FROM F_DOCENTETE INNER JOIN F_COMPTET ON F_DOCENTETE.DO_TIERS = F_COMPTET.CT_NUM
La seconde, plus simple:
SELECT F_DOCENTETE.DO_PIECE, F_COMPTET.CT_INTITULE FROM F_DOCENTETE, F_COMPTET WHERE F_DOCENTETE.DO_TIERS = F_COMPTET.CT_NUM
Jusque là pas de problème. Ca se complique avec une jointure droite ou gauche
Voici la requête générée par Access pour une jointure gauche :
SELECT F_DOCENTETE.DO_PIECE, F_COMPTET.CT_INTITULE FROM F_DOCENTETE LEFT JOIN F_COMPTET ON F_DOCENTETE.DO_TIERS = F_COMPTET.CT_NUM;
Je cherche la manière simple d'écrire cette requête mais je n'ai pas trouvé.
Si des gens ont la solution ...
Merci d'avance
Nicolas
Salut,
Il n'y en a pas sous Jet, et MS SQL Sever suggère fortement de ne pas
utiliser *= ni =*. En somme, "remonter" dans le join:
De
...
FROM a, b
WHERE a.xyz *= b.uvw
on passe à
...
FROM a LEFT JOIN b
ON a.xyz = b.uvw
est-ce vraiment plus compliqué? pas vraiment, et c'est nettement plus
souple lorsqu'il y a plusieurs jointures...
De plus, penser qu'on peut avoir autre chose que des = dans une jointure,
la jointure explicite est nettement plus appropriée.
Enfin, la jointure explicite est toujours (logiquement) évaluée AVANT le
WHERE.
Espérant être utile,
Vanderghast, Access MVP
"Nicolas" <nicolasheurtevin@wanadoo.fr> wrote in message
news:0c7b01c3bf3d$4fb973d0$a401280a@phx.gbl...
Mon problème est le suivant, il y a 2 facon d'écrire une
jointure en SQL :
La 1ère générée par ACCESS :
SELECT F_DOCENTETE.DO_PIECE, F_COMPTET.CT_INTITULE
FROM F_DOCENTETE INNER JOIN F_COMPTET ON
F_DOCENTETE.DO_TIERS = F_COMPTET.CT_NUM
La seconde, plus simple:
SELECT F_DOCENTETE.DO_PIECE, F_COMPTET.CT_INTITULE
FROM F_DOCENTETE, F_COMPTET
WHERE F_DOCENTETE.DO_TIERS = F_COMPTET.CT_NUM
Jusque là pas de problème. Ca se complique avec une
jointure droite ou gauche
Voici la requête générée par Access pour une jointure
gauche :
SELECT F_DOCENTETE.DO_PIECE, F_COMPTET.CT_INTITULE
FROM F_DOCENTETE LEFT JOIN F_COMPTET ON
F_DOCENTETE.DO_TIERS = F_COMPTET.CT_NUM;
Je cherche la manière simple d'écrire cette requête mais
je n'ai pas trouvé.