|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
zimounet WRInaute accro

Inscrit le: 08 Nov 2004 Messages: 1799 Localisation: Physiquement ou mentalement?
|
Posté le : Ven Mar 17, 2006 8:59 Sujet du message: Requete SQL: virer les doublons |
|
|
message supprimé
Dernière édition par zimounet le Jeu Avr 06, 2006 4:34; édité 1 fois |
|
| |
|
 |
chava2b WRInaute occasionnel

Inscrit le: 05 Déc 2003 Messages: 226 Localisation: Bastia
|
Posté le : Ven Mar 17, 2006 9:17 Sujet du message: Requete SQL: virer les doublons |
|
|
Virer le prenom? et le nom qui lui est associé, on le vire aussi ?
| Code: |
select * from table group by prenom
|
|
|
| |
|
 |
cardoule WRInaute occasionnel

Inscrit le: 19 Fév 2004 Messages: 234
|
Posté le : Ven Mar 17, 2006 9:19 Sujet du message: Requete SQL: virer les doublons |
|
|
si j'ai bien compris tu as une table que nous appellerons donc table, comprenant un champ id, un champ nom et un champ prenom
tu veux en extraire la liste des prénoms disponibles.
Essaye :
SELECT DISTINCT prenom FROM table
si tu utilises mysql ça doit marcher, à vérifier avec un autre langage SQL |
|
| |
|
 |
petit-ourson WRInaute passionné

Inscrit le: 31 Mai 2004 Messages: 783 Localisation: Paris
|
Posté le : Ven Mar 17, 2006 9:20 Sujet du message: Requete SQL: virer les doublons |
|
|
| Code: |
| SELECT DISTINCT prenom FROM TABLE |
PS J'ai été grillé sur le coup là ;o) |
|
| |
|
 |
cardoule WRInaute occasionnel

Inscrit le: 19 Fév 2004 Messages: 234
|
Posté le : Ven Mar 17, 2006 9:28 Sujet du message: Requete SQL: virer les doublons |
|
|
moi aussi j'ai faillit l'être par
| chava2b a écrit: |
Virer le prenom? et le nom qui lui est associé, on le vire aussi ?
| Code: |
select * from table group by prenom
|
|
| MySql a écrit: |
Erreur
requête SQL :
SELECT * FROM TABLE GROUP BY `prenom`
MySQL a répondu:#1064 - Erreur de syntaxe près de 'TABLE GROUP BY `prenom`' à la ligne 2 |
|
|
| |
|
 |
chava2b WRInaute occasionnel

Inscrit le: 05 Déc 2003 Messages: 226 Localisation: Bastia
|
Posté le : Ven Mar 17, 2006 9:34 Sujet du message: Requete SQL: virer les doublons |
|
|
| heuu... juste pour etre sur... tu as remplacé "TABLE" par le nom de ta table ? |
|
| |
|
 |
cardoule WRInaute occasionnel

Inscrit le: 19 Fév 2004 Messages: 234
|
Posté le : Ven Mar 17, 2006 9:43 Sujet du message: Requete SQL: virer les doublons |
|
|
| chava2b a écrit: |
| heuu... juste pour etre sur... tu as remplacé "TABLE" par le nom de ta table ? |
Bingo, à force de faire vite, j'avais légèrement oublié ce minuscule détail... qui fait bien sûr toute la différence.
Néanmoins ta requête retourne tous les champs de la table, il me semble que Zimounet ne voulait que la liste des prénoms  |
|
| |
|
 |
chantra WRInaute impliqué

Inscrit le: 27 Juin 2005 Messages: 257
|
Posté le : Ven Mar 17, 2006 10:00 Sujet du message: Requete SQL: virer les doublons |
|
|
he ben, change * par prenom, mais bon, c'est marqué dans n'importe quel tuto  |
|
| |
|
 |
zimounet WRInaute accro

Inscrit le: 08 Nov 2004 Messages: 1799 Localisation: Physiquement ou mentalement?
|
Posté le : Ven Mar 17, 2006 10:27 Sujet du message: Requete SQL: virer les doublons |
|
|
oui, eu j'vous demande pas de me faire un cours sur les requete SQL, ma demande était juste, comment faire pour que ma requete ne me sorte que "julien, marc", si dans ma table j'ai trois marc et 12 juliens!
C'est donc la clause distinct qu'il faut utiliser pour cela?
chava2b, prend le temps de lire! Je demandais pas le moyen de grouper les résultat selon un champ!
Bref, si il s'agissait juste de faire un SELECT ou de classer les résultats je ne serai pas venu ici, mais j'aurai commencé par apprendre le php! Hors la c'est déjà fait (ou je suis déjà au stade suivant...) |
|
| |
|
 |
chava2b WRInaute occasionnel

Inscrit le: 05 Déc 2003 Messages: 226 Localisation: Bastia
|
Posté le : Ven Mar 17, 2006 10:44 Sujet du message: Requete SQL: virer les doublons |
|
|
zimounet, ce n'est pas un cours que je donnais, c'est juste ce que j'aurai fait! maintenant si mon avis ne te convient pas...
Si tu groupe les resultats tu auras ce que tu veux; Tu peux faire un DISTINCT c'est pareil...
Dernière édition par chava2b le Ven Mar 17, 2006 10:47; édité 1 fois |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12226 Localisation: Toulouse
|
Posté le : Ven Mar 17, 2006 10:46 Sujet du message: Requete SQL: virer les doublons |
|
|
| where 1 ? |
|
| |
|
 |
scores WRInaute impliqué

Inscrit le: 24 Nov 2002 Messages: 443 Localisation: Vannes
|
Posté le : Ven Mar 17, 2006 10:52 Sujet du message: Requete SQL: virer les doublons |
|
|
| chava2b a écrit: |
Si tu groupe les resultats tu auras ce que tu veux; Tu peux faire un DISTINCT c'est pareil... |
Je trouve que Distinct est archi plus gourmand au niveau ressource serveur que le group by
au début j'ai commencé avec le distinct, puis voyant mon serveur explosé,
le group by m'a sauvé d'affaire... |
|
| |
|
 |
zimounet WRInaute accro

Inscrit le: 08 Nov 2004 Messages: 1799 Localisation: Physiquement ou mentalement?
|
Posté le : Ven Mar 17, 2006 12:18 Sujet du message: Requete SQL: virer les doublons |
|
|
| chava2b, faillais pas le prendre comme ça... |
|
| |
|
 |
petit-ourson WRInaute passionné

Inscrit le: 31 Mai 2004 Messages: 783 Localisation: Paris
|
Posté le : Ven Mar 17, 2006 12:26 Sujet du message: Requete SQL: virer les doublons |
|
|
| scores a écrit: |
Je trouve que Distinct est archi plus gourmand au niveau ressource serveur que le group by
au début j'ai commencé avec le distinct, puis voyant mon serveur explosé,
le group by m'a sauvé d'affaire... |
C'est amusant car le distinct est sensé être optimisé. Enfin je n'ai jamais fait de tests sur le sujet non plus ;o)
http://dev.mysql.com/doc/refman/4.1/en/distinct-optimization.html |
|
| |
|
 |
scores WRInaute impliqué

Inscrit le: 24 Nov 2002 Messages: 443 Localisation: Vannes
|
Posté le : Ven Mar 17, 2006 12:49 Sujet du message: Requete SQL: virer les doublons |
|
|
Pour être plus précis avec mes souvenirs sur cette question
c'est que le distinct t'obliges à faire une distinction sur tous les champs que tu as dans la requete
par exemple
"SELECT DISTINCT a, b, c, d, e,f,g from table where..."
disons que j'ai besoin de tous les champs abdcefg pour la presentation des articles, mais que je aurais voulu faire la distinction doublon uniquement du champs b.
si je fais
"SELECT DISTINCT b from table where..."
je n'ai pas les autres champs dans les resultats.
avec group by je peux :
"SELECT a, b, c, d, e,f,g from table GROUP BY b ..."
C'est en cela, que GROUP BY m'a sauvé, j'explosais mon serveur avec Distinct.
Alors peut être n'est-je pas toutes les connaissances (c'est sur)
et qu'il est possible d'ajouter un distinct dans une requete pour eviter les doublons du champ b et permettre aussi la selection de tous les autres champs acdefg...? |
|
| |
|
 |
| |
|
|