Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre régulier Avatar de skulled
    Inscrit en
    décembre 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 117
    Points : 79
    Points
    79

    Par défaut Requête sur jointure simple

    Bonjour,

    Je bloque actuellement sur une requête qui me semblait simple.
    Deux tables :
    user(id, name);
    banned_list(id, id_User_Banned, id_Admin);

    Je souhaiterais faire une requête qui m'affiche :

    Name Admin || Name User banned


    Merci

  2. #2
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 773
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 13 773
    Points : 22 995
    Points
    22 995

    Par défaut

    C'est effectivement simple : il suffit de deux jointures.
    Qu'as-tu essayé comme requête ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre régulier Avatar de skulled
    Inscrit en
    décembre 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 117
    Points : 79
    Points
    79

    Par défaut

    J'ai finalement tester avec une double jointure comme tu me l'as préconisé en dupliquant ma table des users ce qui me donne :

    user(id, name);
    banned_list(id, id_User_Banned, id_Admin);

    Code :
    1
    2
    3
    4
    SELECT u.name AS userbanned, a.name AS admin, b.id 
    FROM user u, user a, banned_list b 
    WHERE u.ID = b.id_User_Banned 
      AND a.ID = b.id_Admin;
    La requête fonctionne mais je ne pense pas que ça soit la requête optimal dans mon cas.

  4. #4
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 773
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 13 773
    Points : 22 995
    Points
    22 995

    Par défaut

    En dehors du fait que tu écris les jointures avec la syntaxe obsolète depuis 20 ans, c'est ça.

    Code :
    1
    2
    3
    4
    SELECT u.name AS userbanned, a.name AS admin, b.id 
    FROM banned_list b,
    INNER JOIN user u ON u.ID = b.id_User_Banned
    INNER JOIN user a ON a.ID = b.id_Admin
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •