Page 1 sur 1

SQL SELECT éviter doublons sur 1 valeur

Posté : 18 août 2012, 21:12
par Dams1987
Bonjour !

Voilà, je viens cette foi, pour trouver une solution sur une requêtte SQL :
$sql_score2 = mysql_query("SELECT * FROM " . MA_TABLE . " WHERE game_id = '" . $game_id . "'  AND user != '" . $user[0] . "' GROUP BY user ");
$nb_joueurs = mysql_num_rows($sql_score2);
$nb_joueurs=$nb_joueurs+1;
Donc, j'ai toutes les parties joué de tous les jeux et de tous les joueurs sur cette table.
Et je veu trouver le nombre total de joueur sur un jeu.
Sachant que (game_id = "le jeu") et (user = "le joueur").

Avec ma requette ci dessus, j'optien le nombre total de parties, or moi je veu que 5 parties du même joueur, fasse "1" et non "5" !

J'éspére que j'ai réussi à être suffisament explicite, car les explication, c'est pas mon fort.

Re: SQL SELECT éviter doublons sur 1 valeur

Posté : 18 août 2012, 21:59
par Zahnzao
Salut,

C'est pas DISTINCT que tu cherches ?

http://www.w3schools.com/sql/sql_distinct.asp

;)

Re: SQL SELECT éviter doublons sur 1 valeur

Posté : 18 août 2012, 22:07
par Dams1987
Merci pour la propostion, mais j'ai déjà essayé, et ça change rien, DISTINCT va éviter les doublons sur toute la table, pas uniquement sur une valeur.

Re: SQL SELECT éviter doublons sur 1 valeur

Posté : 19 août 2012, 11:26
par Zahnzao
Salut,

edit: post à oublier...

;)

Re: SQL SELECT éviter doublons sur 1 valeur

Posté : 19 août 2012, 11:36
par Zahnzao
Je me suis planté... après quelques tests je remarque que je raconte des conneries :p

DISTINCT s'applique à tout les champs séléctionnés dans ta requete.

Donc en placant un "SELECT * " qui est déconseillé, il fait un distinct sur tout tes champs.

Le truc c'est de savoir quels champs tu dois récupérer un petit schéma de ta table serait la bienvenue.

Sinon tu as FIRST() qui recupère seulement la première valeur du champ séléctionné.

Re: SQL SELECT éviter doublons sur 1 valeur

Posté : 19 août 2012, 11:58
par moogli
salut,

ou alors, on oublie pas que groupe by s'utilise seulement quand on une fonction "de groupe" (comme count(), max, avg etc .) dans le select.

donc déjà une requete comme :
select count(*) from table where condition group by user
devrait être plus ce que tu cherche :)

@+

Re: SQL SELECT éviter doublons sur 1 valeur

Posté : 19 août 2012, 16:44
par Dams1987
Merci beaucoup, j'ai fais ça :
$sql_score2 = mysql_query("SELECT DISTINCT user FROM " . MA_TABLE . " WHERE game_id = '" . $game_id . "'  ");
$nb_joueurs = mysql_num_rows($sql_score2);
Et ça fonctionne trés bien !
En faite, c'était tout simple.