IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Requête avec jointure


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2016
    Messages : 61
    Points : 48
    Points
    48
    Par défaut Requête avec jointure
    Bonjour
    Quand j'exécute la requête ci-dessous sous Access 2007, j'ai le message d'erreur indiquant qu'il y a un opérateur qui manque; je ne vois vraiment pas ce qui manque. Par avance, merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Select * from table1
    LEFT JOIN table2  on  table1.codemenage= table2.codemenage
    RIGHT JOIN table3  on table2.codeindividu= table3.codeindividu
    LEFT JOIN table4  on  table3.codeindividu= table4.codeindividu
    where table1.codemenage not in ('KOL','TKI','YOU');
    Cordialement,

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 112
    Points : 5 237
    Points
    5 237
    Par défaut
    Bonjour,

    Je ne suis pas sûr qu'il soit possible d'alterner des left et des right join. Au minimum il faudrait mettre des parenthèses... Est-ce que ça marche en mettant partout INNER JOIN ?

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2016
    Messages : 61
    Points : 48
    Points
    48
    Par défaut
    Bonjour,
    merci de votre intervention.
    ça ne marche pas non plus avec des INNER JOIN partout;
    alternativement, j'ai fait des jointures progressives, ie, (table1,table2), puis, (table1,table2) avec table3, puis,
    (table1,table2,table3) avec table4, et ça marche; mais je souhaite faire tout ça en une seule requête.
    Par avance, merci pour d'autres propositions.
    Très agréable journée à tous.
    Coliasso

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 112
    Points : 5 237
    Points
    5 237
    Par défaut
    Citation Envoyé par coliasso Voir le message
    ça ne marche pas non plus avec des INNER JOIN partout;
    Ca c'est curieux !
    Et avec des parenthèses ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select * from ((table1
    LEFT JOIN table2  on  table1.codemenage= table2.codemenage)
    RIGHT JOIN table3  on table2.codeindividu= table3.codeindividu)
    LEFT JOIN table4  on  table3.codeindividu= table4.codeindividu
    where table1.codemenage not in ('KOL','TKI','YOU');
    Ou sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select * from (table1 LEFT JOIN table2  on  table1.codemenage= table2.codemenage)
    RIGHT JOIN (table3  LEFT JOIN table4  on  table3.codeindividu= table4.codeindividu) on table2.codeindividu= table3.codeindividu
    where table1.codemenage not in ('KOL','TKI','YOU');

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2016
    Messages : 61
    Points : 48
    Points
    48
    Par défaut
    Dans les deux cas, je reçois le message d'erreur suivant: "Expression JOIN non supportée"
    merci des propositions
    coliasso

  6. #6
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 112
    Points : 5 237
    Points
    5 237
    Par défaut
    En général j'évite les rigth join, il faudrait voir quelle est la table "principale" et faire des inner join puis des left join pour la compléter avec les tables annexes

    Et dans tous les cas il me semble qu'access veut des parenthèses pour chaque jointure

  7. #7
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2016
    Messages : 61
    Points : 48
    Points
    48
    Par défaut
    Ok, bien noté!
    Merci.
    Cordialement,

Discussions similaires

  1. Requête avec jointure
    Par Maglight dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/11/2005, 09h57
  2. optimisation d'une requête avec jointure
    Par champijulie dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 07/07/2005, 09h45
  3. Requête avec jointures
    Par Corben dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/11/2004, 12h55
  4. Mise à jour de table impossible après requête avec jointure
    Par sto dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/03/2004, 13h24
  5. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo