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 :

Requête sur deux tables avec données absentes de la deuxième table.


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 39
    Points
    39
    Par défaut Requête sur deux tables avec données absentes de la deuxième table.
    EDIT : Je modifie puisque j'ai fait une erreur dans mon scénario...


    Bonjour,
    j'ai besoin d'extraire des données de deux tables pour identifier les usagers d'une application et la date de leur dernière connexion. Nonobstant le besoin, j'aimerais bien savoir comment construire la requête SQL. J'ai essayé beaucoup de choses mais rien ne fonctionne exactement comme je le souhaite. Voici donc l'environnement.

    Deux tables : USAGERS et ACTIVITES

    La table USAGERS contient le nom de tout les usagers de l'application dans le champs USERNAME.
    La table ACTIVITES contient deux champs important, le type d'activité (ACTIVITE_TYPE) qui peut comprendre plusieurs valeurs dépendant de l'activité, un champ TIMESTAMP qui donne la date et l'heure de l'activité et d'autres champ qui ne sont pas important. Donc, un usager qui ne s'est jamais connecté n'aura aucune entrée dans la table ACTIVITES et les autres auront une entrée pour chaque nouvelle activité (APP, LOGON, LOGOFF, par exemple).

    Maintenant, les conditions :

    Je dois extraire le champ USERNAME de TOUT les usagers de la table USAGERS.
    Je dois extraire, pour chaque USERNAME de la table USAGERS, la plus haute valeur du champ TIMESTAMP pour les ACTIVITE_TYPE = LOGON, si elle est présente.

    Jusqu'à présent, j'arrive à sortir les données correctement si les deux tables contiennent le même USERNAME, dès qu'un usager n'est pas présent dans la table ACTIVITES, ça fonctionne plus.

    Voilà et merci de votre temps.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Il suffit de remplacer votre jointure interne par une jointure externe (LEFT OUTER JOIN)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 39
    Points
    39
    Par défaut
    Merci aieeeuuuuu,
    après avoir lu ta réponse je me suis rendu compte que j'avais mal décrit mon scénario. J'ai corrigé. Maintenant, j'ai 10 usagers dans ma première table et seulement deux de ces usagers ont des entrées dans la deuxième table. Je dois mal entrée mes conditons parce que ma requête ne me retourne que les deux usagers qui ont des entrées dans les deux tables.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 39
    Points
    39
    Par défaut
    Haaaaaaaaaaaaa! ça fonctionne ... j'ai mi ma conditon dans le "left outer join on" au lieu de dans mon "where" ....

    Merci!

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

Discussions similaires

  1. Requête sur deux tables avec incrément de champ
    Par LB dans le forum Langage SQL
    Réponses: 12
    Dernier message: 15/11/2014, 17h41
  2. Requête sur deux tables avec fonction COUNT
    Par islande dans le forum Langage SQL
    Réponses: 13
    Dernier message: 12/08/2013, 16h06
  3. sql requête sur deux tables avec cumul..
    Par Chris'S dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/01/2010, 23h23
  4. [Toutes versions] Requête sur deux champs avec doublons.
    Par RKU01 dans le forum Access
    Réponses: 2
    Dernier message: 22/07/2009, 12h19
  5. Problème de requêtes sur deux tables
    Par Pymm dans le forum Access
    Réponses: 6
    Dernier message: 06/09/2005, 09h06

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