MySQL Forums
Forum List  »  French

Re: Equivalent d'un LIMIT dans une sous requete
Posted by: Huu Da Tran
Date: June 11, 2008 04:55PM

ah maudit, j'avais oublié de me relire avant de cliquer...

C'est qu'il faut utiliser la table temporaire...
create temporary table `tmp_journee_points` (
    `journee_id` int,
    `user_id` int,
    `points` int,
    `idx` int auto_increment,
    primary key (`user_id`, `idx`)
);
On peuple la table temporaire avec les données avec les pointages les plus élevés en premier. En procédant ainsi, la clé `idx` aura 1 pour le plus élevé, 2 pour le second, ainsi de suite.
insert into `tmp_journee_points` (`journee_id`, `user_id`, `points`)
    select `journee_id`, `user_id`, `points`
    from `journee_points`
    order by `points` DESC;
Maintenant, on simule le limit 15 en se basant sur `idx`... Il faut se rappeler que le auto_increment s'incrément selon sa position dans la clé.
select avg(j1.`points`) as 'moyenne',
    j1.`user_id` as 'user_id'
from `journee` as j1
    left join `tmp_journee_points` as j2 using (`user_id`)
where (j2.`idx` <= 15);

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Equivalent d'un LIMIT dans une sous requete
3791
June 11, 2008 04:55PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.