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 :

Probleme avec Count et In


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut Probleme avec Count et In
    Bonjour,

    J'ai créé deux requetes sql, une pour compter mes données et une autre pour les afficher, je peux pas utiliser mysql_num_rows() car j'utilise PDO ...

    Voici les 2 requetes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT COUNT(a.id) AS total_rows 
    FROM a 
    INNER JOIN r ON r.a_id = a.id 
    WHERE r.t_id IN ( 45, 69 ) 
    GROUP BY a.id, a.f 
    HAVING count(DISTINCT r.t_id) = 2;
     
    SELECT a.id 
    FROM a 
    INNER JOIN r ON r.a_id = a.id 
    WHERE r.t_id IN ( 45, 69 ) 
    GROUP BY a.id, a.f 
    HAVING count(DISTINCT r.t_id) = 2
    Les 2 marches mais ne renvoit pas le même résultat J'ai beau tout essayer, rien n'y fait ... Une idée ?

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    La première requête compte (via la fonction COUNT) le nombre de tuples répondant à vos conditions alors que la seconde retourne les id des tuples répondant à vos conditions.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    En principe ta première requête devrait te renvoyer plusieurs lignes autant que tu as de a.id, puisque tu fais un group by dessus.
    Je dirais que la 1ere requête renverrait un résultat plus proche de tes attentes si tu l'écrivais ainsi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Select count(*) as nbre
    from (
      SELECT a.id 
      FROM a 
      INNER JOIN r ON r.a_id = a.id 
      WHERE r.t_id IN ( 45, 69 ) 
      GROUP BY a.id, a.f 
      HAVING count(DISTINCT r.t_id) = 2 
    ) as T
    A+
    Soazig

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/03/2013, 09h53
  2. [AC-2007] Probleme avec Count Distinct
    Par Bonero dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 18/10/2012, 11h37
  3. Probleme avec count(*)
    Par Le Marlou dans le forum Hibernate
    Réponses: 4
    Dernier message: 26/01/2010, 19h12
  4. [CR?]Probleme avec "Count"
    Par dilalex dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 10/03/2008, 10h09
  5. Probleme avec COUNT() contenant une condition
    Par smarties dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/07/2007, 10h19

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