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 :

COUNT avec une jointure


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut COUNT avec une jointure
    Bonjour,

    J'ai deux tables :

    crm.user : http://www.noelshack.com/2016-45-1478536311-capture.png

    et

    crm_received_emai : http://www.noelshack.com/2016-45-1478536406-capture.png

    Les id de ma première table correspondent aux operator_id de ma seconde.
    Je dois compter tous les id de ma première table dont leurs organization_id est à 463 et les liés avec ma seconde afin de récupérer le nombre de mails envoyé par chaque utilisateurs.

    Je dois donc récupérer le nombres de mail envoyé par l'utilisateur (ou l'id) 8, 76, 403, 500 etc..

    J'ai fais cette requête mais je ne pense pas que ça soit la bonne méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT( * )
    FROM `crm_received_email`
    WHERE operator_id
    IN ( 8, 76, 403 )
    En plus de ça, au lieu de trier les utilisateurs par colonne, j'ai le nombre total de leurs mails envoyé en un seul bloc.

    Merci,

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Il manque peut-être un GROUP BY ?
    A lire : Groupage, ensembles et sous ensembles
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Il manque peut-être un GROUP BY ?
    A lire : Groupage, ensembles et sous ensembles
    Merci pour ta réponse,

    Cette requête fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT operator_id, COUNT( * )
    FROM `crm_received_email`
    WHERE `operator_id`
    IN ( 8, 76, 403, 500, 770, 771, 772, 2075, 2276, 2474, 2475, 2551, 2552, 2657, 2909, 3157, 3315, 3427 )
    GROUP BY operator_id
    Mais encore une fois je dois taper les operator_id à la main alors que dans la table crm_user, ils ont tous un organization_id en commun qui est 463, du coup j'ai essayé cette requête mais aucune idée de comment placer le COUNT (*)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT crm_user.id, crm_user.email
    FROM crm_user
    INNER JOIN crm_received_email ON crm_user.id = crm_received_email.operator_id
    WHERE crm_user.organization_id = 463
    GROUP BY operator_id
    EDIT : Ah si c'est ok, j'ai tapé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT crm_user.id, crm_user.email, COUNT( * )
    FROM crm_user
    INNER JOIN crm_received_email ON crm_user.id = crm_received_email.operator_id
    WHERE crm_user.organization_id =463
    GROUP BY operator_id
    Merci

Discussions similaires

  1. COUNT avec une requete
    Par HULK dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/09/2006, 12h28
  2. Réponses: 1
    Dernier message: 23/08/2006, 14h11
  3. [DB2] Problèmes avec une Jointure externe sur des vues
    Par treivse dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/07/2006, 11h42
  4. COUNT dans une jointure
    Par picsoun dans le forum Langage SQL
    Réponses: 4
    Dernier message: 03/04/2006, 20h27
  5. un count sur une jointure et ca ne fonctionne pas
    Par elbronziero dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/10/2004, 11h23

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