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 MySQL Discussion :

Nombre de clauses ON dans un INNER JOIN


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut Nombre de clauses ON dans un INNER JOIN
    Bonjour,

    J'aimerais savoir si pour un INNER JOIN, on peut utiliser 2 ON et si oui comment ?

    J'ai cette requête-ci mais le deuxième ON est ignoré (en gras) il ne vérifie pas la lettre :
    SELECT I.Civilite,I.Nom As iNom,I.Prenom As iPrenom,I.Email As iEmail,S.Intitule,S.Ddebut,S.Dfin,S.Lieu,S.Ville As sVille,M.Nom As mNom,M.Prenom As mPrenom,M.Email As mEmail,E.Nom As eNom,E.Rue,E.Code_postal,E.Ville As eVille,E.Email As eEmail,Adm.Nom As aNom,Adm.Prenom As aPrenom,Adm.Ville As aVille,Adm.Email AS aEmail FROM inscrits As I INNER JOIN stages AS S ON S.Id=I.Id_stage INNER JOIN membres AS M ON (M.CTPN='312' AND M.Lettre_CTPN='B') INNER JOIN etablissements AS E ON E.CTPN='312' INNER JOIN membres AS Adm ON Adm.Titre=10 WHERE I.Id=1
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 355
    Points : 15 701
    Points
    15 701
    Par défaut
    mets plutot ces conditions dans le WHERE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT I.Civilite, I.Nom As iNom, I.Prenom As iPrenom, I.Email As iEmail, S.Intitule, S.Ddebut, S.Dfin, S.Lieu, S.Ville As sVille, M.Nom As mNom, M.Prenom As mPrenom, M.Email As mEmail, E.Nom As eNom, E.Rue, E.Code_postal, E.Ville As eVille, E.Email As eEmail, Adm.Nom As aNom, Adm.Prenom As aPrenom, Adm.Ville As aVille, Adm.Email AS aEmail
    FROM inscrits As I
    INNER JOIN stages AS S ON S.Id=I.Id_stage
    INNER JOIN etablissements AS E ON ???
    INNER JOIN membres AS Adm ON ???
    WHERE I.Id=1 AND M.CTPN='312' AND M.Lettre_CTPN='B' AND  E.CTPN='312' AND Adm.Titre=10
    et en plus tu n'as pas précisé les conditions de jointures pour les tables "etablissements" et "membres"

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut
    je n'ai pas de conditions de jointures pour ces tables autre que celles que tu as mis dnas le WHERE et il ignore toujours la lettre "M.Lettre_CTPN='B' "

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 355
    Points : 15 701
    Points
    15 701
    Par défaut
    si les tables "etablissements" et "membres" sont liées à la table "inscrits" (ou une autre, tu as forcement des conditions de jointures entres des clès primaires et étrangères comme pour la table "stage"

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut
    Inscrit est liée à Stage
    mais le pb c'est que ni inscrit et ni stage ne sont liées à membres ou établissements, c'est pour ça que je lui donne le 312 et la lettre B

    Par contre membres est lié à établissements.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut
    Erf en fait il faut que je transforme la lettre en chiffre (0 => A , ...) j'avais oublié que je ne stockais pas la lettre mais sa valeur ....

    Thx pour l'aide et désolé du dérangement .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conditions : dans le INNER JOIN ou le WHERE ?
    Par Khleo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/12/2010, 21h50
  2. erreur de syntaxe dans mon inner join
    Par polo86 dans le forum Requêtes
    Réponses: 6
    Dernier message: 26/03/2009, 17h45
  3. [SQL] Selection du min dans un inner join
    Par elfiestador dans le forum Langage SQL
    Réponses: 0
    Dernier message: 05/12/2008, 12h02
  4. clause where dans ma requete join
    Par jive dans le forum Requêtes
    Réponses: 6
    Dernier message: 02/02/2007, 22h42
  5. INNER JOIN ... ON ... ou jointure dans clause where
    Par schmur1 dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 28/06/2005, 09h16

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