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

 MySQL Discussion :

select where ne retourne pas tous les tuples


Sujet :

MySQL

  1. #1
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut select where ne retourne pas tous les tuples
    Bonjour,

    J'ai un probleme avec les commandes suivantes avec mariadb.

    Je sais que j'ai des doublons dans une colonne
    Je les trouve avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT   count(*) AS nbr_doublon, CD_America
    FROM     city_for_airport
    GROUP BY CITY_CD_America
    HAVING   nbr_doublon > 1
    Je veux ensuite selectioner tous les tuple avec la meme valeur de CD_America et ici je n'ai en retour qu'une partie des tuples concernés.
    Je sais qu'il y a 7 tuples, mais le select n'en trouve que 3 pour le code 'CHA'


    Je fais mon select comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from city_for_airport  where CD_America = 'CHA'
    Est-ce que quelqu'un peut m'aider?

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut Marc_3.

    Ton problème est une erreur d’inattention.

    Tu ne respectes pas la norme SQL sur le 'group by'. Si en faisant ceci, tu as par exemple 7 tuples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from city_for_airport  where CD_America = 'CHA'
    alors il suffit d'écrire cela pour avoir dans ton compteur 'nbr_doublon', le nombre 7 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT   CD_America,
             count(*) AS nbr_doublon
    FROM     city_for_airport
    GROUP BY CD_America
    HAVING   nbr_doublon > 1
    WHERE    CD_America = 'cha'
    Autrement dit, tu affiches la colonne 'CD_America' mais tu regroupes sur une autre colonne 'CITY_CD_America'.
    C'est l'une ou l'autre mais pas les deux colonnes à la fois.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Votre select et votre group by ne sont pas cohérents

    Faites un groupage sur la colonne que vous souhaitez compter et ne sélectionnez que cette colonne + le count(*) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT   CITY_CD_America, count(*)
    FROM     city_for_airport
    GROUP BY CITY_CD_America
    HAVING   count(*) >1
    Faites ensuite votre select [...] where CITY_CD_America = ce que vous aurez obtenu

Discussions similaires

  1. SELECT ne retourne pas tous les éléments d'une vue
    Par chat de nuit dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 20/03/2012, 14h38
  2. [MySQL] mon select ne renvoie pas tous les champs
    Par dhonore dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/07/2011, 16h00
  3. [MySQL] select * ne select pas tous mes tuples
    Par g.nowar dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/06/2009, 11h25
  4. Réponses: 3
    Dernier message: 18/11/2008, 15h31
  5. [SQL] Ma requête renvoie tous les tuples et ne respecte pas la condition AND
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/02/2007, 13h33

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