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 :

Count(*) avec DISTINCT


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Points : 50
    Points
    50
    Par défaut Count(*) avec DISTINCT
    Salut,

    J'ai un peu de mal à faire une requête sélectionnant le nombre de ligne avec un DISTINCT sur un des champs :

    J'ai une table Message (message_id, message_texte), et une table Avertissement (avertissement_id, message_id, user_id)

    Un user peut mettre un avertissement sur un message, et au bout de 5 avertissements le message est supprimé, MAIS, 5 avertissements d'users différents !
    Je pourrais très bien faire une clé unique dans la table Avertissement, mais je veux voir si un user met plusieurs fois un avertissement sur le même message.

    Donc, je pars sur une requête comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT count(*) > 4 
    FROM Avertissement 
    WHERE Message.message_id = Avertissement.message_id
    ce qui fait que je récupère tous les messages qui ont 5 avertissements ou plus, MAIS je voudrais 5 avertissements d'users différents, et là je bloque.

    Merci !

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    Citation Envoyé par jeyce
    Donc, je pars sur une requête comme ça :
    ...
    ce qui fait que je récupère tous les messages qui ont 5 avertissements ou plus, MAIS je voudrais 5 avertissements d'users différents, et là je bloque.
    parti comme ça, ça m'étonnerait que tu récupères autre chose qu'un message du genre Unknown column 'Message.message_id' in 'where clause'.

    La requête que tu cherches est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT M.message_id
    FROM Message M
      INNER JOIN Avertissement A ON M.message_id = A.message_id
    GROUP BY M.message_id
    HAVING COUNT(DISTINCT A.user_id) >= 5

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    Merci !

    En effet ma requête est foireuse car en fait elle est bien plus complexe que ça en réel et j'ai voulu la simplifier pour le forum, donc j'ai oublié quelques trucs

    Par contre comment imbriquer le résultat de cette requête dans un update ?

    Je précise, ma table Message a un champ supplémentaire booléen appelé message_supprime et je veux lancer une requête qui met ce champ à 1 pour les résultats de la requête fournie par Antoun ?

Discussions similaires

  1. Problème count avec distinct
    Par freeway57 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2014, 16h07
  2. Requête avec COUNT et DISTINCT ?
    Par kateo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 27/04/2012, 22h33
  3. Requête: Count avec un IF et Distinct
    Par Sethenssen dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2009, 13h35
  4. Problème de requête SQL avec DISTINCT et COUNT ?
    Par [ZiP] dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/01/2007, 17h11
  5. requête avec distinct et count
    Par spirou dans le forum Requêtes
    Réponses: 4
    Dernier message: 18/04/2006, 19h52

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