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 :

récupération de 2 valeurs


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Points : 11
    Points
    11
    Par défaut récupération de 2 valeurs
    Bonjour,

    Actuellement en dérrouillage SQL, je cherche à récupérer 2 'username' différents depuis leur 'user_id' dans le même résultat...
    Je m'explique : (désolé, c'est du pseudo code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    table : users
    column : user_id
    column : username
    ---
    table : messages
    column : msg_id
    column : msg_from_uid
    colum : msg_to_uid
    ---
    table : msg_txt
    column : msg_txt_id
    column : msg_text
    Je voudrais récupérer tous les messages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    view: message_list
    column : from_username
    column : to_username
    column : msg_text
    Et je ne trouve rien de mieux qu'un mauvais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 
      U.username AS FROM_U,
      U.username AS TO_U,
      T.msg_text
    FROM messages M, users U, msg_txt T
    WHERE 
      U.user_id = M.msg_from_uid
    AND 
      T.msg_txt_id = M.msg_id
    Ce qui est bien sur faux... Quelqu'un peut me corriger ?

    Merci d'avance

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    D'abord, une révision sur les jointures s'impose !

    Ensuite, pourquoi ne pas avoir mis le texte du message dans la table des messages ? Un message peut être envoyé à plusieurs personnes ?

    Enfin, comme il y a besoin de l'expéditeur et du destinataire, il faut deux instances de la table Users.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT 
      U.username AS FROM_U,
      U.username AS TO_U,
      T.msg_text
    FROM messages M
    INNER JOIN users UF ON M.msg_from_uid = UF.user_id
    INNER JOIN users UT ON M.msg_to_uid = UT.user_id
    INNER JOIN msg_txt T ON T.msg_txt_id = M.msg_id

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    D'abord, une révision sur les jointures s'impose !
    Oh que oui,!

    Ensuite, pourquoi ne pas avoir mis le texte du message dans la table des messages ? Un message peut être envoyé à plusieurs personnes ?
    En fait, pour mes révisions, je me suis inspiré d'un vieux forum phpBB...
    Enfin, comme il y a besoin de l'expéditeur et du destinataire, il faut deux instances de la table Users.
    Ah oui, pas bête et parfaitement logique (quand on a la réponse !) !

    Juste une petite rectification nécessaire pour que ça marche dans le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 
      UF.username AS FROM_U,
      UT.username AS TO_U,
    Sur ce, je retourne aux (web)bouquins revoir les jointures ! Merci beaucoup !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/11/2005, 15h03
  2. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49
  3. Récupération de la valeur d'une auto-incrémentation
    Par maldufleur dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/07/2005, 16h50
  4. Récupération de la valeur d'un champ au nom variable
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/02/2005, 15h13
  5. Récupération de la valeur visible d'une Liste déroulante
    Par Yaz dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/10/2004, 12h01

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