Requete SQL: virer les doublons

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

zimounet
WRInaute accro
WRInaute accro
 
Messages: 1796
Inscription: Lun Nov 08, 2004 20:57

Requete SQL: virer les doublons

Message le Ven Mar 17, 2006 7:59

message supprimé
Dernière édition par zimounet le Jeu Avr 06, 2006 3:34, édité 1 fois.


chava2b
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Ven Déc 05, 2003 16:44

Message le Ven Mar 17, 2006 8:17

Virer le prenom? et le nom qui lui est associé, on le vire aussi ?

Code: Tout sélectionner
select * from table group by prenom


cardoule
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 233
Inscription: Jeu Fév 19, 2004 16:24

Message le Ven Mar 17, 2006 8:19

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é
WRInaute passionné
 
Messages: 843
Inscription: Lun Mai 31, 2004 15:19

Message le Ven Mar 17, 2006 8:20

Code: Tout sélectionner
SELECT DISTINCT prenom FROM TABLE

PS J'ai été grillé sur le coup là ;o)


cardoule
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 233
Inscription: Jeu Fév 19, 2004 16:24

Message le Ven Mar 17, 2006 8:28

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: Tout sélectionner
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 impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Ven Déc 05, 2003 16:44

Message le Ven Mar 17, 2006 8:34

heuu... juste pour etre sur... tu as remplacé "TABLE" par le nom de ta table ?


cardoule
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 233
Inscription: Jeu Fév 19, 2004 16:24

Message le Ven Mar 17, 2006 8:43

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 8)


chantra
WRInaute impliqué
WRInaute impliqué
 
Messages: 257
Inscription: Lun Juin 27, 2005 19:12

Message le Ven Mar 17, 2006 9:00

he ben, change * par prenom, mais bon, c'est marqué dans n'importe quel tuto :)

zimounet
WRInaute accro
WRInaute accro
 
Messages: 1796
Inscription: Lun Nov 08, 2004 20:57

Message le Ven Mar 17, 2006 9:27

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 impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Ven Déc 05, 2003 16:44

Message le Ven Mar 17, 2006 9:44

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 9:47, édité 1 fois.


e-kiwi
Modérateur
Modérateur
 
Messages: 13854
Inscription: Mar Déc 23, 2003 9:04

Message le Ven Mar 17, 2006 9:46

where 1 ?


scores
WRInaute impliqué
WRInaute impliqué
 
Messages: 467
Inscription: Dim Nov 24, 2002 19:12

Message le Ven Mar 17, 2006 9:52

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
WRInaute accro
 
Messages: 1796
Inscription: Lun Nov 08, 2004 20:57

Message le Ven Mar 17, 2006 11:18

chava2b, faillais pas le prendre comme ça...

petit-ourson
WRInaute passionné
WRInaute passionné
 
Messages: 843
Inscription: Lun Mai 31, 2004 15:19

Message le Ven Mar 17, 2006 11:26

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/ ... ation.html


scores
WRInaute impliqué
WRInaute impliqué
 
Messages: 467
Inscription: Dim Nov 24, 2002 19:12

Message le Ven Mar 17, 2006 11:49

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...?

Requete SQL: virer les doublons

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités