Probleme de SELECT DISTINCT
5 messages
• Page 1 sur 1
- FINIELS
- WRInaute discret

- Messages: 96
- Inscription: 24 Mai 2004
Probleme de SELECT DISTINCT
Bonjour,
J'ai besoin d'un petit coup de pouce, pour un problème de Select...
Voila ma table "VILLE":
je voudrais n'avoir que les villes sans doublons
Résultat souhaité :
J'ai regardé du côté du DISTINCT mais ça nefonctionne pas :
SELECT DISTINCT commune FROM ville
Ne me permet évidemment pas de récupérer les colonnes "Code postal" / "DEPARTEMENT" dont j'ai besoin.
Je bugue ...Si quelqu'un a une idée...
J'ai besoin d'un petit coup de pouce, pour un problème de Select...
Voila ma table "VILLE":
- Code: Tout sélectionner
COMMUNE CODE POSTAL DEPARTEMENT
Lyon (69000) RHONE
Montpellier (34000) HERAULT
Montpellier (34070) HERAULT
Montpellier (34080) HERAULT
Montpellier (34090) HERAULT
Le Havre (76600) SEINE MARITIME
Le Havre (76610) SEINE MARITIME
Le Havre (76620) SEINE MARITIME
Nîmes (30000) GARD
Nîmes (30900) GARD
Aix en Provence (13090) BOUCHES DU RHONE
Aix en Provence (13100) BOUCHES DU RHONE
je voudrais n'avoir que les villes sans doublons
Résultat souhaité :
- Code: Tout sélectionner
Ville Code postal DEPARTEMENT
Lyon (69000) RHONE
Montpellier (34000) HERAULT
Le Havre (76600) SEINE MARITIME
Nîmes (30000) GARD
Aix en Provence (13090) BOUCHES DU RHONE
J'ai regardé du côté du DISTINCT mais ça nefonctionne pas :
SELECT DISTINCT commune FROM ville
Ne me permet évidemment pas de récupérer les colonnes "Code postal" / "DEPARTEMENT" dont j'ai besoin.
Je bugue ...Si quelqu'un a une idée...
-

YoyoS - WRInaute accro

- Messages: 3827
- Inscription: 14 Sep 2006
Pour éviter les doublons, tu aurais pu faire ta table comme ceci:
COMMUNE CODE POSTAL DEPARTEMENT
Lyon 69000 RHONE
Montpellier 34000;34070..etc HERAULT
Le Havre 76600;76610..etc SEINE MARITIME
Puis quand tu lis une ligne, tu coupes simplement sur le ";" et ça te sort un tableau de codes postaux pour cette ligne
---
Sinon une petite requête orthogonale que je viens de tester et qui fonctionne:
COMMUNE CODE POSTAL DEPARTEMENT
Lyon 69000 RHONE
Montpellier 34000;34070..etc HERAULT
Le Havre 76600;76610..etc SEINE MARITIME
Puis quand tu lis une ligne, tu coupes simplement sur le ";" et ça te sort un tableau de codes postaux pour cette ligne
---
Sinon une petite requête orthogonale que je viens de tester et qui fonctionne:
- Code: Tout sélectionner
select distinct t1.commune,(select t2.codepostal from ville t2 where t2.commune = t1.commune order by t2.codepostal limit 1) cp,t1.dept from ville t1
-

Bool - WRInaute passionné

- Messages: 1290
- Inscription: 26 Fév 2004
Hello,
dans ton cas le "group by" me semble plus adapté.
Mais effectivement une séparation en plusieurs tables (dissocier les codes postaux et les villes), aurait peut être été préférable.
dans ton cas le "group by" me semble plus adapté.
- Code: Tout sélectionner
select commune, min(codepostal) as codepostal, min(departement) as departement
from ville
group by commune
Mais effectivement une séparation en plusieurs tables (dissocier les codes postaux et les villes), aurait peut être été préférable.
-

Bool - WRInaute passionné

- Messages: 1290
- Inscription: 26 Fév 2004
Sauf que là ce n'est pas "valide", et ça ne marche qu'avec certaines versions de MySQL.
Quand on fait un "group by", on doit préciser les champs à lister, et il est interdit d'utiliser des champs qui ne sont pas dans le "group by" justement (il faut obligatoirement utiliser une fonction d'agrégation, d'où mon MIN() ).
Quand on fait un "group by", on doit préciser les champs à lister, et il est interdit d'utiliser des champs qui ne sont pas dans le "group by" justement (il faut obligatoirement utiliser une fonction d'agrégation, d'où mon MIN() ).
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Problème select distinct
- MySql selection sans doublon (select distinct)
- [SQL] Select, Distinct, Max, Group by et autres fariboles
- Contraire de "SELECT DISTINCT" en SQL
- Problème avec clause DISTINCT dans requête SQL
- Probleme select SQL
- Problème boite select html taille
- Problème de récuperation de l'index d'un SELECT
- Probleme avec balise <SELECT> sur FIREFOX
- Tri avec SELECT ..... IN SELECT ...
- Outils Google pour les entreprises : Google Agency Toolkit - 01-03-2009
- De la publicité ciblée dans les cartes de Google Local - 31-03-2006
- Les adresses IP de Google et Googlebot - 05-10-2006
- Google écrit parfois au webmaster en cas de blacklistage - 16-09-2005
- Liste des produits et services de Google - 07-12-2005
- Google AdWords introduit le concept de niveau de qualité - 03-10-2005
- Récapitulatif sur Google AdWords - 14-03-2009
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
