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 sur une table differente.


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut COUNT sur une table differente.
    Bonjours à tous.
    Je voulais trouver par moi même car je suis sûr que la solution est évidente, mais rien n'y fait, je tourne en rond depuis se matin.

    Je viens donc faire appel à vous.
    J'ai une base de données sous MySQL 5.0, et voila mon probleme.

    J'ai 2 tables que je résumerais par ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    CREATE TABLE `Annonce` (
      `ID` int(100) NOT NULL auto_increment,
      `Texte` text,
      `Auteur` varchar(60) default NULL,
      PRIMARY KEY  (`ID`)
    ) 
     
    CREATE TABLE `Commentaires` (
      `ID` int(100) NOT NULL auto_increment,
      `ID_Annonce` int(100),
      `Texte` text,
      `Auteur` varchar(60) default NULL,
      PRIMARY KEY  (`ID`)
    )
    Ce que j'aimerais faire, c'est une requête qui me sort toutes les annonces d'un auteur en particulier ainsi que le nombre de commentaire de chacune de ses annonces.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    -- Resultat :
    ID     Auteur      Texte                     Nb_Commentaires
    ----  -------     -----------------     -----------------
    3      Pierre       Mangez du pain...       3
    9      Pierre       Sortez couvert...       1
    ...
    Alors voila ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT A.ID, 
    	A.Auteur, 
    	A.Texte, 
    		(SELECT COUNT(DISTINCT C.ID) 
                    FROM Commentaires C 
                    WHERE C.ID_Annonce=A.ID 
                    GROUP BY C.ID_Annonce) AS Nb
    	FROM Annonce A 
    	WHERE A.Auteur= 'Pierre' 
    	ORDER BY A.ID;
    Avec ça, je trouver bien la liste des annonces, mais le nombre de commentaire reste à 0 (pourtant il y a bien des commentaires d'enregistrés).

    Pourriez vous m'éclairer un peu ?
    Merci d'avance.

  2. #2
    Membre confirmé Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Bonjour

    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
      A.ID, 
      A.Auteur, 
      A.Texte, 
      COUNT(C.ID)
    FROM Annonce A 
      LEFT JOIN Commentaires C ON C.ID_Annonce = A.ID
    WHERE A.Auteur = 'Pierre' 
    GROUP BY A.ID, A.Auteur, A.Texte
    ORDER BY A.ID
    Cordialement
    Christophe B.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Tout d'abord, merci elbj pour ta requête... elle marche très bien.
    Ensuite, désolé... car je crois que je t'ai dérangé pour rien...
    En effet, en faite, même après avoir mis ta requête en place, j'obtenais toujours 0 dans ma page de résultat.
    Après quelque test, je me suis rendu compte que c'était mon script d'affichage en php qui contenait une erreur et non pas ma requête sql :/
    Donc, si ça se trouve, mon ancienne requête marchait aussi... j'en saurais rien ^^.

    Dans tout les cas, merci beaucoup d'avoir pris le temps de me répondre.
    Bonne fin de journée.

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 17/10/2013, 09h24
  2. Réponses: 3
    Dernier message: 04/06/2010, 22h57
  3. [2.3.0] Total.count sur une Table
    Par scariou29 dans le forum BIRT
    Réponses: 3
    Dernier message: 16/12/2008, 10h55
  4. Réponses: 12
    Dernier message: 12/06/2006, 14h29
  5. probleme sur count sur une base differente
    Par webisa dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/07/2005, 05h32

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