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

Requêtes MySQL Discussion :

Compter sur une table à partir d’une autre


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut Compter sur une table à partir d’une autre
    Bonjour,

    J’ai une base avec deux tables :

    La table utilisateur avec Nom, prénom et localisation,

    La table Commune avec les noms des villes sous NCCENR.

    Je voudrais compter le nombre de fois qu’une ville est associée à un utilisateur.

    NCCENR COUNT

    Paris 12

    Nantes 33

    ...

    PS : la localisation est rentrée par l’utilisateur et peut donc contenir des caractères en plus de la ville « from Paris »…

    Voici la requête que j'ai réalisée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT commune.NCCENR, COUNT(*)
    FROM `BASE`.`refcommune` as commune
    left join `BASE`.`utilisateur` as user on user.Localisation like commune.NCCENR
    GROUP BY NCCENR;
    Mais elle me retourne 1 pour toutes les villes

    Je travail sur MySQL Workbench 5.2.47

    Merci.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT commune.NCCENR, COUNT(user.nom)
    FROM `BASE`.`refcommune` AS commune
    LEFT JOIN `BASE`.`utilisateur` AS user ON user.Localisation LIKE commune.NCCENR
    GROUP BY NCCENR;
    Il faut préciser la table user pour le count.

  3. #3
    Membre averti
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Merci pour ta réponse Exia93,
    Mais cela ne marche toujours pas, j'obtiens maintenant 0 pour chaques villes

  4. #4
    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
    Par défaut
    Bonjour,

    Le LIKE tel que vous le faites revient à un =...

    essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT commune.NCCENR, COUNT(user.nom)
    FROM `BASE`.`refcommune` AS commune
    LEFT JOIN `BASE`.`utilisateur` AS user ON user.Localisation LIKE '%' + commune.NCCENR + '%'
    GROUP BY NCCENR;

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    La colonne Localisation de la table user est-elle bien une clé étrangère vers la colonne NCCENR de la table Commune ?

  6. #6
    Membre averti
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Citation Envoyé par Exia93 Voir le message
    La colonne Localisation de la table user est-elle bien une clé étrangère vers la colonne NCCENR de la table Commune ?
    Je ne peux pas déclarer Localisation comme clé étrangère de NCCENR car Localisation n'est pas une clé primaire

  7. #7
    Membre averti
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    Le LIKE tel que vous le faites revient à un =...

    essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT commune.NCCENR, COUNT(user.nom)
    FROM `BASE`.`refcommune` AS commune
    LEFT JOIN `BASE`.`utilisateur` AS user ON user.Localisation LIKE '%' + commune.NCCENR + '%'
    GROUP BY NCCENR;
    J'ai essayé ta méthode mais cela ne marche pas ,j'obtiens 0 pour chaques villes

  8. #8
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut

    je ne crois pas que le + concatène, il transforme plutôt le résultat en nombre...
    utilise plutôt:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    concat('%',commune.NCCENR,'%')
    dans le like

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/09/2009, 16h02
  2. compter sur une ligne à partir de derniere cellule non vide
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2009, 18h23
  3. Réponses: 4
    Dernier message: 03/07/2008, 15h53
  4. Réponses: 1
    Dernier message: 11/04/2008, 16h08
  5. faire une requête sur une table d'un autre schéma
    Par kineton dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 10/04/2008, 15h08

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