[MySQL]

[MySQL] - Programmation

Marsh Posté le 27-08-2002 à 12:48:58    

je suis embété j'arrive pas a ecrire une requete pourtant assez simple:
 
voici la table de données:  
U1 | S1      *
U1 | S2      **
U1 | S3
U2 | S1       *
U2 | S2       **
 
sje' voudrais faire une requete du type select distinct U  limit 2 pour choper a la premiere passe les rangs (*) puis a la deuxiemme les rangs ** etc ( faire une sorte de peigne progressant au fur et a mesure ) .  
j'y arrive facilement en faisant select distinct u where .... Limit 2 , mais le probleme c'est que je n'ai que le champ U, ce qui est un poil chiant, car je voudrais avoir l'intégralité de la colonne .  
Voila, si qu'un a une idée.... meric :spookie:  :bounce:


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 12:48:58   

Reply

Marsh Posté le 27-08-2002 à 12:56:10    

l'integralité du row je veux dire


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 13:00:07    

sihal_again a écrit a écrit :

je suis embété j'arrive pas a ecrire une requete pourtant assez simple:
 
voici la table de données:  
U1 | S1      *
U1 | S2      **
U1 | S3
U2 | S1       *
U2 | S2       **
 
sje' voudrais faire une requete du type select distinct U  limit 2 pour choper a la premiere passe les rangs (*) puis a la deuxiemme les rangs ** etc ( faire une sorte de peigne progressant au fur et a mesure ) .  
j'y arrive facilement en faisant select distinct u where .... Limit 2 , mais le probleme c'est que je n'ai que le champ U, ce qui est un poil chiant, car je voudrais avoir l'intégralité de la colonne .  
Voila, si qu'un a une idée.... meric :spookie:  :bounce:  




Je comprend pas très bien ta question.
Est ce que tu pourrai expiciter plus ta table :
- colonnes
- les 5 premieres lignes


Message édité par tomlameche le 27-08-2002 à 13:00:42
Reply

Marsh Posté le 27-08-2002 à 13:02:16    

colonne 1: User : U1 <=> User 1
colonne 2 : Session ( par exemple) donc S1 <=> session 1  
 
 
voila c'est une table de  sessions par users que je veux parser avec une sorte de peigne...


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 13:06:11    

sihal_again a écrit a écrit :

colonne 1: User : U1 <=> User 1
colonne 2 : Session ( par exemple) donc S1 <=> session 1  
 
 
voila c'est une table de  sessions par users que je veux parser avec une sorte de peigne...  




Je suis peut être un peu fatigué, mais ce n'est pas très clair encore pour moi ...
Ce que tu veux, c'est choper d'abord les premières session, puis les duexièmes, etc ... ? C'est bien ça ?

Reply

Marsh Posté le 27-08-2002 à 13:09:42    

eux non, en fait ce que je veux c'est n'avoir qu'une ligne par user a la fois.  
par exemple: je traite ala premiere itération la premiere ligne de l'user 1, et de l'user 2,  
puis itération suivante, la deuxieme ligne de U1 ET LA 2eme ligne de U2, Eetc...  
 en fait au depart je prenais tout, mais en fait pour d'obscures raison je ne doit traiter qu'une ligne par user a la fois.


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 13:15:55    

sihal_again a écrit a écrit :

eux non, en fait ce que je veux c'est n'avoir qu'une ligne par user a la fois.  
par exemple: je traite ala premiere itération la premiere ligne de l'user 1, et de l'user 2,  
puis itération suivante, la deuxieme ligne de U1 ET LA 2eme ligne de U2, Eetc...  
 en fait au depart je prenais tout, mais en fait pour d'obscures raison je ne doit traiter qu'une ligne par user a la fois.  




Ben par exemple, si tu ajoute une colonne donnant le numéro de session ( à moins que ce ne soit déjà le cas pour ta colonne) et tu met dans ton where une limitte sur les numéros de session.
Ou j'ai peut être tjs pas compris ?

Reply

Marsh Posté le 27-08-2002 à 14:15:24    

euh désolé mais c pas encore ca ;-)  
je pense en fait que c'est pas réalisable en pratique de cette maniere la en tout cas. si quelqu'un peu me démonter que j'ai tort...


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 14:38:14    

sihal_again a écrit a écrit :

euh désolé mais c pas encore ca ;-)  
je pense en fait que c'est pas réalisable en pratique de cette maniere la en tout cas. si quelqu'un peu me démonter que j'ai tort...  




Ben en tout cas, si tu as un champ "NumSession" où tu met à chaque fois le numéro par rapport au user ( 1 la première fois, 2 la deuxième et ainsi de suite ), tu peux obtenir ce que tu veux, il me semble.

Reply

Marsh Posté le 27-08-2002 à 14:48:38    

nonnon, regarde le premier post. j'ai deja ma table de remplie. je veux qu'a la premiere itération je recupere les champs marqués d'une etoile, puis a la deuxime ceux avec 2 etoiles et ainsi de suite, d'ou ce que je veux dire en utilisant le mot peigne.


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 14:48:38   

Reply

Marsh Posté le 27-08-2002 à 14:52:10    

sihal_again a écrit a écrit :

nonnon, regarde le premier post. j'ai deja ma table de remplie. je veux qu'a la premiere itération je recupere les champs marqués d'une etoile, puis a la deuxime ceux avec 2 etoiles et ainsi de suite, d'ou ce que je veux dire en utilisant le mot peigne.  




Ben si tu n'as rien dans la strucutre de tes données ( en particuler pour le champs S ) qui peut t'indiquer si c'est la première session ou non pour un user, je vois pas comment tu peux faire.

Reply

Marsh Posté le 27-08-2002 à 14:55:05    

le truc serait d'arrivera faire une requete a base de "distinct" pour que mysql me renvoie un champ pour l'user 1, un champ pour l'user 2 etc... peut importe qu'il me renvoie la ligne 1 ou la ligne 4 pour l'iduser 1 du momment qu'il me renvoie une ligne par user .


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 14:59:23    

sihal_again a écrit a écrit :

le truc serait d'arrivera faire une requete a base de "distinct" pour que mysql me renvoie un champ pour l'user 1, un champ pour l'user 2 etc... peut importe qu'il me renvoie la ligne 1 ou la ligne 4 pour l'iduser 1 du momment qu'il me renvoie une ligne par user .  




Tu peux essayer un truc du genre :
select distinct u, S
from table t
where t.S = ( select S from table t2 where t2.u = t.u limit 1)
 

Reply

Marsh Posté le 27-08-2002 à 15:13:04    

not bad, mais c pas encore ca. je te remercie pour ton aide mais laisse tomber:je peux pas vraiment expliquer le probleme en detail donc on trouvera pas comme ca une solution si je fournis pas tout les elements.. desolé


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 16:15:45    

eheh j'ai une solution pour faire un peigne progressif :  
select truc,machin,chose  from tSession where Status = 'pending' GROUP BY IDUser ORDER BY SendDate LIMIT 100 ;  
 
il faut evidement que le status des lignes fetchés passe a autre chose que pending pour pouvoir trouver d'autres rows a la requete suivante.


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 16:40:32    

sihal_again a écrit a écrit :

eheh j'ai une solution pour faire un peigne progressif :  
select truc,machin,chose  from tSession where Status = 'pending' GROUP BY IDUser ORDER BY SendDate LIMIT 100 ;  
 
il faut evidement que le status des lignes fetchés passe a autre chose que pending pour pouvoir trouver d'autres rows a la requete suivante.  




Ben c'est à un truc comme ça que je pensai plus haut avec une colonne indiquant le numero de session ...
Ca revient au même avec les statuts : y te faut un statut différent à chaque nouvelle session.

Reply

Marsh Posté le 27-08-2002 à 17:37:34    

ouaip, il faut que le status change pour que le peigne progresse. ouah on aura lutté dis donc! :ouch:  
en tout cas désolé d'acvoir posé une question aussi imprécise, mais je bosse pour une boite et je ne peux parler de ce que je fais normalement ( clause de confi, comme dans la plupart des boites )


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 27-08-2002 à 17:40:37    

sihal_again a écrit a écrit :

ouaip, il faut que le status change pour que le peigne progresse. ouah on aura lutté dis donc! :ouch:  
en tout cas désolé d'acvoir posé une question aussi imprécise, mais je bosse pour une boite et je ne peux parler de ce que je fais normalement ( clause de confi, comme dans la plupart des boites )  




C'est clair que c'est pas evident à comprendre si tu ne donnes que la moitié de l'enoncé !
Mais tu sais, je pense que le pb de confidentialité peut facilement être resolu en decrivant le coté purement technique avec un exemple type : pas besoin de savoir pourquoi exactement, ni de connaitre le contenu exact des tables : juste la structure.
 :hello:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed