Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Mysql] Doublons : DISTINCT ne marche pas.

1 réponse
Avatar
D.Durand
Bonjour,

J'ai une requête faisant jointure entre deux tables :

******************************
select valeurs_dans_t1 from portail t1 ,categoriesites t2 (conditions dans
t1) and t1.ID=t2.site and (conditions dans t2)
******************************

Cette requête peut me renvoyer plusieurs fois le même enregistrement en
réponse. Ce n'est pas un bogue, car à un enregistrement T1 peuvent
correspondre plusieurs enregistrements T2...

M'enfin c'est bien embêtant quand-même de se voir renvoyer plusieurs fois
la même réponse.

Je crois savoir qu'il y a une "fonction" de Select qui permet de grouper
les enregistrements indentiques, mais je ne la retrouve pas (a-priori, ce
n'est pas "group"). Quelqu'un la connaît-il ?

J'ai essayé "distinct" et "distinctrow", mais cela n'a visiblement aucun
effet.




--
Amicalement,
D.Durand

1 réponse

Avatar
D.Durand
"P'tit Marcel" wrote in
news::


Visiblement ce n'est pas un pb de version alors.
Essaye toujours de remplacer le distinct par un group by :

select t1.col1,...,t1.coln from portail t1
INNER JOIN categoriesites t2 ON t1.ID=t2.site
WHERE (conditions dans t1) and (conditions dans t2)
GROUP BY t1.col1,...,t1.coln




J'ai essayé, ça ne marche pas et je pleure.


Alors j'ai été chercher la dernière version de MySQL sur mysql.org, version
avec installeur pour windows.

Je lui ais donné le chemin de mon répertoire mysql, puis j'ai lancé
l'installation (s'il y a un installeur, c'est bien qu'il est tenu compte
d'une éventuelle version antérieure, non ?).

Puis, j'ai relancé phpmyadmin.

Et c'est là que ça devient surnaturel :

D'abord, le script ne change pas : Ca ne marche toujours pas.

Je fais une copie de la requête (affichée via un << print ($marequete); >>,
donc pas moyen de se tromper) dans la fenêtre de requête manuelle d'Eskuel
(dernière version).

Et là, ça marche : Toutes les réponses possibles sont données... en un seul
exemplaire chacune.

Supris, et pris d'un doute, je demande à Eskuel quelle version de MySQL est
installée : MySQL v 4.0.13-max-debug, dit-il. Donc celle que je viens
d'installer.

Ah oui mais... Un phpinfo, lui, prétend qu'on en est resté à... 3.23.39




Je veux un exorciste !



Attendez, ce n'est pas terminé !


Pour écrire ce message, j'ai besoin de voir un truc et je relance mon
script !

Je l'ai essayé plusieurs fois : Il marche à tous les coups (semble-t'il).

Je lance un phpinfo()...

3.23.39

!


Serait-il possible que les deux versions de mysql aient mélangé leurs
fichiers ? L'installeur ne m'a prévenu d'aucun écrasement, donc s'il a bien
été conçu il n'y a rien eu de tel.







--
Amicalement,
D.Durand