Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
936 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Probleme avec DISTINCT / MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec DISTINCT / MySQL

n°1593542
asseforeve​r
Nostalgique
Posté le 31-07-2007 à 00:27:14  profilanswer
 

Bonjour,
 
j'ai un petit souci avec une requete SQL, je souhaiterai n'afficher que les valeurs distinctes dans une colonne mais le paramètre DISTINCT semble ignoré par MySQL.
 
Ma table :

Code :
  1. | idc | nom | niv | tps |
  2. |  -  | abc | 001 | 123 |
  3. |  -  | bcd | 001 | 234 |
  4. |  -  | def | 001 | 345 |
  5. |  -  | abc | 002 | 159 |
  6. |  -  | bcd | 002 | 357 |
  7. |  -  | abc | 003 | 654 |
  8. |  -  | bcd | 003 | 578 |


Ma requete :

Code :
  1. SELECT DISTINCT(`nom`), `niv`,`tps`
  2. FROM `classement`
  3. ORDER BY `niv` DESC


Résultat :

Code :
  1. | nom | niv | tps |
  2. | abc | 003 | 654 |
  3. | bcd | 003 | 578 |
  4. | abc | 002 | 159 |
  5. | bcd | 002 | 357 |
  6. | abc | 001 | 123 |
  7. | bcd | 001 | 234 |
  8. | def | 001 | 345 |


Alors que je voudrais :

Code :
  1. | nom | niv | tps |
  2. | abc | 003 | 654 |
  3. | bcd | 003 | 578 |
  4. | def | 001 | 345 |


j'ai essayé :

Code :
  1. SELECT DISTINCT(`nom`), `niv`,`tps`
  2. FROM `classement`
  3. GROUP BY `nom`
  4. ORDER BY `niv`


mais ca renvoie :

Code :
  1. | idc | nom | niv | tps |
  2. |  -  | abc | 001 | 123 |
  3. |  -  | bcd | 001 | 234 |
  4. |  -  | def | 001 | 345 |


 
Je cherche toujours et encore comment faire  :??: Merci


---------------
Amateur de Prise 2 tête
mood
Publicité
Posté le 31-07-2007 à 00:27:14  profilanswer
 

n°1593699
mrbebert
Posté le 31-07-2007 à 12:15:41  profilanswer
 

Effectivement, le mot clé "DISTINCT" porte sur l'ensemble de la ligne, pas sur un champ. Il n'enlèvera donc que les lignes entièrement identiques :)  
 
Pour celà, il faut passer par le GROUP BY. La dernière requête est bonne, où est le problème ?
Il t'a renvoyé un enregistrement parmi ceux possible [:proy]

n°1593764
asseforeve​r
Nostalgique
Posté le 31-07-2007 à 14:22:27  profilanswer
 

Oui mais la seconde requete ne me permet pas de choisir quelle ligne je veux, ce qu'il faudrait c'est trier, puis dé-doublonner en sélectionnant la première occurrence. Et d'après mes recherches, MySQL ne le fait pas.
 
Peut-être avec une sous-requete ?


---------------
Amateur de Prise 2 tête
n°1593785
flo850
moi je
Posté le 31-07-2007 à 14:36:35  profilanswer
 

tu peux le faire avec des sous requets ( requetes imbriqués ) dispos a partir de MySQL 4 ( de mémoire )

n°1593844
mrbebert
Posté le 31-07-2007 à 15:44:30  profilanswer
 

asseforever a écrit :

Oui mais la seconde requete ne me permet pas de choisir quelle ligne je veux, ce qu'il faudrait c'est trier, puis dé-doublonner en sélectionnant la première occurrence. Et d'après mes recherches, MySQL ne le fait pas.
 
Peut-être avec une sous-requete ?

Après, tu peux, pour chaque colonne, choisir la valeur qui t'intéresse parmi celle qui sont réunies
SELECT nom, MAX(niv) ...
 
Pour choisir une ligne complète en fonction d'un des critères, là, il faut passer par une sous-requête [:proy]  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Probleme avec DISTINCT / MySQL

 

Sujets relatifs
probleme caractere (fonction mail)probleme de confirmation par mail
Problème de redirection malgrès de gros effort sur un header en flash.[MySQL] Moteur de recherche MATCH
c# problème formatage fichier texteProbleme de parser XML / XSLt - Doublons
Problème de comparaison de mots de passe MySQLProblème de div sous Firefox
problème de retour à la ligne dans htpasswd[php mySQL] ! ptit problème avec select distinct et order by
Plus de sujets relatifs à : Probleme avec DISTINCT / MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR