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

Langage SQL Discussion :

Jointure avec plusieurs résultats


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 31
    Par défaut Jointure avec plusieurs résultats
    Bonjour,

    Une question de débutant, mais pour laquelle je n'arrive pas à trouver de réponse (bien que ça soit sans doute tout bête). Tout d'abord je suis sous MySQL 3.23.

    En gros, j'ai une table d'utilisateurs à qui je veux associer une ou plusieurs rubriques. J'ai donc fait deux tables, la table des utilisateurs avec (en résumé) :
    et la table des rubriques avec :
    A chaque fois qu'un utilisateur veut s'ajouter à une rubrique, j'ajoute une nouvelle entrée à la table "rubrique", avec son id et l'id de la rubrique à laquelle il veut s'ajouter.

    Je voudrais en fait savoir comment récupérer en une requête les rubriques d'un utilisateur. Comme un utilisateur peut appartenir à plusieurs rubriques, un JOIN quelconque ne fera sans doute pas l'affaire ? Bref, je ne vois pas trop comment aborder le problème, si quelqu'un a une idée ça m'arrangerait bien, merci

  2. #2
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Pourquoi un join ne ferait-il pas l'affaire ?
    As tu essayé ?
    Donne nous ta requête et nous essayerons de la corriger le cas echéant.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 31
    Par défaut
    So, voici un exemple:

    Ma table des users :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    +----------+---------------+
    | id       | login         |
    +----------+---------------+
    | 348      | kemenaran     |
    +----------+---------------+
    Ma table des rubriques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    +----------+--------+
    | user_id  | rub_id |
    +----------+--------+
    | 348      | 33     |
    | 348      | 25     |
    +----------+--------+
    Ma requête serait alors par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT users.id, users.login, users_rubs.rub_id
    FROM users
    JOIN users_rubs ON users.id = users_rubs.user_id
    Si j'exécute cette requête (avec un "LIMIT 1" pour faire plus simple), un var_dump (je travaille en Php) me renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    array(1) {
      [0]=>
      array(3) {
        ["id"]=>
        string(3) "348"
        ["login"]=>
        string(9) "kemenaran"
        ["rub_id"]=>
        string(2) "33"
      }
    }
    Or j'aimerai récupérer toutes les rubriques auxquelles "kemenaran" est associé, la "33" mais aussi la "25"... et là à chaque fois je n'obtiens que la première...

  4. #4
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Si j'exécute cette requête (avec un "LIMIT 1" pour faire plus simple), un var_dump (je travaille en Php) me renvoie :
    et bien si tu mets LIMIT 1 c'est sur que cela ne peut pas fontionner !

    Ensuite, executée sous phpmyadmin ta requete fontionne très correctement puisqu'il n'y à pas de GROUP BY....

    C'est peut être un problème de php.

    Bye

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 31
    Par défaut
    Ah ok, pigé ! En fait je pensais à une méthode qui renverrait une seule row, contenant d'une manière ou d'une autre toutes les rubriques... et c'est pour ça que j'avais mis le LIMIT. Mais évidemment il est logique que ça fonctionne comme ça.

    Donc en virant le "LIMIT 1", ça marche au poil ; merci !

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 16/07/2019, 12h07
  2. Recherchev avec plusieurs résultats possibles.
    Par solorac dans le forum Excel
    Réponses: 23
    Dernier message: 12/08/2014, 15h17
  3. [AC-2007] [JOINTURES] Condition de jointure avec plusieurs tables
    Par mistertbo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/03/2011, 11h45
  4. faire un case avec plusieurs résultats
    Par delaio dans le forum Développement
    Réponses: 6
    Dernier message: 06/12/2010, 17h20
  5. Réponses: 0
    Dernier message: 23/07/2009, 15h45

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