pb de requête avec clause 'distinct' [resolu] - SQL/NoSQL - Programmation
Marsh Posté le 31-05-2005 à 17:09:39
betsamee a écrit : select Branche,min(id) from Tbl |
merci de ta réponse, mais ... elle me paraît fausse, et après test, ...
elle l'est
je sens que je v devoir revoir mon modèle de données
Marsh Posté le 01-06-2005 à 09:11:47
g rien dit
select distinct Branche,min(id) from Tbl
group by Branche <= ca ca fait ce que je veux
Marsh Posté le 01-06-2005 à 09:17:03
En fait tu récupère les plus petite id pour chaque branche. C'est ca? (j'essaye de comprendre le min).
Marsh Posté le 01-06-2005 à 10:22:34
effectivement.
ce qui me permet d'avoir a chaque branche un et un seul id en face.
sachant que ce n'est pas très très clean, mais au vu de l'utilisation que je fais de ma base ca me fait ce que je veux, donc no problémo.
Marsh Posté le 01-06-2005 à 14:55:05
cf haut de page et lien 'sujet à lire', je v pas refaire mon méaculpa ..
Marsh Posté le 01-06-2005 à 17:18:56
Ouais moi non + je ne comprend. sachant qu'ID est surement une clé primaire donc pas de doublon donc a priori, logiquement sans DISTINCT ca devrait fonctionner.
Marsh Posté le 01-06-2005 à 17:23:38
Nan là je ne voi pas non +. pourquoi un GROUP BY enlèverai les doublons?
Marsh Posté le 01-06-2005 à 19:50:26
c'est clair que faire une group by sur un champ defini en leve les doublons sur ce champ!
si je dis : donne moi le id minimum par branche il ne va me donner qu'un resultat par branche
J'ai teste ma requete sur tes trois entrees et ca marche tres bien
le distinct n'a aucune utilite du fait du group by
Marsh Posté le 02-06-2005 à 12:50:25
de toutes les manieres un grup by est impossible sans une fonction d'aggregation
Marsh Posté le 31-05-2005 à 16:53:17
Salut à tous..
j'ai un problème de requêtage surement très con, mais impossible de trouver une solution...
je cherche à éliminer des doublons sur certains champs lors de ma requête, mais pas sur les autres ...
Voici ma requête :
et le résultat renvoyé :
| branche | id | module_id |
_____________________________
| actu_1_0 | 20 | 20 |
| actu_1_1 | 98 | 20 |
| actu_1_1 | 99 | 20 |
-----------------------------
j'explique :
mon but est d'obtenir les champs 'id' correspondant aux branche, mais je veux éliminer tous les doublons de branche au préalable. Or la clause distinct influe sur tous les champs de ma requête, ce qui fait qu'ici j'ai toutes les branches différentes ET tous les id différents satisfaisant mes clauses .
en gros il me faut ca :
| branche | id | module_id |
_____________________________
| actu_1_0 | 20 | 20 |
| actu_1_1 | 98 | 20 |
| actu_1_1 | 99 | 20 |-----------------------------
les différentes solutions que j'ai pu tenter ne me satisfont jamais .... help !!
(sachant que ma requête est pas optimisée, ca je sais, et que le champ 'module_id' ne sert à rien non plus, c pas grave ca fait joli)
Message édité par denzz le 01-06-2005 à 10:24:30