Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1127 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU] Probleme de d'extraction avec SELECT

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Probleme de d'extraction avec SELECT

n°1448069
imcdb
Posté le 27-09-2006 à 11:28:52  profilanswer
 

bonjour,
 
j'ai deux champs dans un table, qui contiennent des ID users, du genre
 
X | Y
----------
1 | 650
650 | 1
1 | 113
113 | 1
112 | 1
 
quelle requete je peux utiliser pour ne récupérer comme valeur que 650, 113, 112 , sans doublon, et sans le 1 (mon id user à moi) ??
 
J'avour que je rame, là...


Message édité par imcdb le 28-09-2006 à 08:06:44

---------------
Réagissez et commentez mes dessins sur snut.fr
mood
Publicité
Posté le 27-09-2006 à 11:28:52  profilanswer
 

n°1448070
flo850
moi je
Posté le 27-09-2006 à 11:31:02  profilanswer
 

si il y a toujours un des deux qui vaut 1 , tu peux faire :
SELECT DISTINCT X*Y as idUser FROM table

Message cité 2 fois
Message édité par flo850 le 27-09-2006 à 11:31:07
n°1448077
MagicBuzz
Posté le 27-09-2006 à 11:35:52  profilanswer
 

je pense que sa table, c'est une table de "lien" entre deux entités. donc on va avoir tous les couples possibles, ça me semble pas trop évident ton système, ou incomplet en tout cas.
 
à la limite, ça ça devrait marcher :
(avec ou sans distinct)

Code :
  1. select x*y / $val as iduser
  2. from table
  3. where (x = $val or y = $val)


 
sinon, en solution plus propre :
 

Code :
  1. select x
  2. from table
  3. where y = $val
  4. union all
  5. select y
  6. from table
  7. where x = $val


 
virer le "all" si on veut des valeurs distinctes.
 
le union est en général assez lent. cependant, dans ce cas précis (vu qu'on a un distinct dans la première de départ ou alors qu'on peut mettre all dans la seconde), cela devrait être plus rapide avec le union, et surtout plus clair. à vérifier.

n°1448087
imcdb
Posté le 27-09-2006 à 11:40:33  profilanswer
 

flo850 a écrit :

si il y a toujours un des deux qui vaut 1 , tu peux faire :
SELECT DISTINCT X*Y as idUser FROM table


ton idUser correspond à quoi ?


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1448091
imcdb
Posté le 27-09-2006 à 11:44:34  profilanswer
 

flo850 a écrit :

si il y a toujours un des deux qui vaut 1 , tu peux faire :
SELECT DISTINCT X*Y as idUser FROM table


ca marche !!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 
 
 :bounce:  :bounce:  :bounce:  
merci a toi... je mets en resolu


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1448516
imcdb
Posté le 27-09-2006 à 23:25:23  profilanswer
 

ben non, en fait ca marche pas.
en fait j'ai l'id joueur 1 mais je voudrais, si j'etais le joueur 650, récupérer les valeurs 1,112, et 113 (uniques)
 
comment faire dans ce cas-là ??


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1448538
omega2
Posté le 28-09-2006 à 01:21:22  profilanswer
 

Code :
  1. SELECT DISTINCT X*Y/(monid) as idUser FROM table where X=(monid) or Y=(monid)


Ca me semblait couler tellement de source que je n'ai pas osé rajouter ce détail tout à l'heure quand flo avait posté sa réponse.

n°1448548
imcdb
Posté le 28-09-2006 à 08:01:34  profilanswer
 

en effet, c'est mieux (maintenant que j'ai compris le pendant de cette méthode, je trouve ça classieux)
par contre il me sort un résultat INT, de la forme
monid.0000 Ex: si mon id vaut 1 il me sort 1.0000
 
comment obtenir juste un INT comme résultat de la requête ?
 
EDIT : j'ai trouvé : faut faire
 
SELECT DISTINCT round(X*Y/ monid)) as idUser FROM table where X=monid or Y=monid
 
et la marche dans tous les cas de figure...
 
Merci à tous de votre aide


Message édité par imcdb le 28-09-2006 à 08:06:23

---------------
Réagissez et commentez mes dessins sur snut.fr
n°1448591
MagicBuzz
Posté le 28-09-2006 à 10:07:08  profilanswer
 

c'est ce que j'ai dit depuis le début m'enfin bon.. :spamafote:
 
(sâchant que ma deuxième solution était moins bidouille et ne posait aucun problème)

Message cité 1 fois
Message édité par MagicBuzz le 28-09-2006 à 10:07:31
n°1448604
omega2
Posté le 28-09-2006 à 10:17:43  profilanswer
 

lol, à une heure du matin, je n'ai pas pris la peine de relire les autres réponse. (ok, grilled de heu ... 12heures : record à battre. :lol:)

mood
Publicité
Posté le 28-09-2006 à 10:17:43  profilanswer
 

n°1450301
imcdb
Posté le 30-09-2006 à 22:55:46  profilanswer
 

MagicBuzz a écrit :

c'est ce que j'ai dit depuis le début m'enfin bon.. :spamafote:
 
(sâchant que ma deuxième solution était moins bidouille et ne posait aucun problème)


ben oui. mais m'a fallu du tps pour comprendre que c'était la meme chose...


---------------
Réagissez et commentez mes dessins sur snut.fr

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU] Probleme de d'extraction avec SELECT

 

Sujets relatifs
[C/Linux] Probleme de communication UDPProbleme de variable
[résolu] Comment récupérer nom + quantité dans liste déroulanteProblème MySql
Probleme Applet Java[RESOLU] Taille maximum String et requête
Probleme d'animation avec scale!![Resolu][C#NET] Mettre le focus sur un onglet (pour le faire afficher)
probleme avec la fonction ftp_put 
Plus de sujets relatifs à : [RESOLU] Probleme de d'extraction avec SELECT


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR