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

 MySQL Discussion :

échangisme sur 3 tables


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 2
    Par défaut échangisme sur 3 tables
    Bonjour, j'ai trois tables :

    gens (id_gens,nom,prenom)
    vetement(id_vetement,vetement)
    correspondance(id_corr,id_gens,id_vetement)

    Je souhaite obtenir les noms et prénoms de tous les gens portant à la fois un slip et des chaussettes. Comment faire ?
    J'ai joint un fichier avec un exemple des tables à ce post (un fin observateur remarquera que Solange n'a pas de culotte et que Jean porte une robe) , et je dispose de MySQL4.0
    J'avoue être un peu largué en ce qui concerne les jointures pour le moment. Donc merci de votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    Comme tu es en MySQL 4.0, pas question de sous-requêtes, et c'est tant mieux (pour les performances).
    Donc, voilà une solution qui devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select g.id_gens, g.prenom, g.nom
    from gens g
    inner join correspondances c1 on g.id_gens = c1.id_gens
    inner join vetement v1 on c1.id_vetement = v1.id_vetement and v1.vetement in ('slip')
    inner join correspondances c2 on g.id_gens = c2.id_gens
    inner join vetement v2 on c2.id_vetement = v2.id_vetement and v2.vetement in ('chaussettes')
    Le truc, c'est deux faire 2 séries de jointures internes, l'une portant sur les slips, l'autre portant sur les chaussettes. Du coup, on ne garde que les personnes qui ont les 2 .

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 2
    Par défaut
    Merci Beaucoup, c'est parfait, ne me reste plus qu'à ajouter un DISTINCT
    pour obtenir des résultats uniques.

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

Discussions similaires

  1. Jointure sur 2 tables de bases différentes
    Par Celina dans le forum Langage SQL
    Réponses: 10
    Dernier message: 10/11/2003, 11h56
  2. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  3. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 16h53
  4. [MS-SQL]requete sur 3 tables
    Par pascalT dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/04/2003, 11h24
  5. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05

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