Bonjour,

Je fais appel à votre aide pour une requête.

Les joueurs sont stockés dans une table, et les grades dans une autre.
Le joueur a un id, et un score. Selon son score, il a un certain grade.

Ma requête met à jour le grade qu'obtient le joueur selon son score.

La contrainte : Très grosse volumétrie (5 Millions de lignes)
Type de base : MySQL.

Pouvez-vous m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
UPDATE
  info_user InfoU,
  (
  SELECT
    InfoU.id,
    InfoU.game_id,
    REFG.grade_id
  FROM
    MaBaseDesRef.ref_grade REFG,
    (
    SELECT
      InfoU.id,
      InfoU.game_id,
      InfoU.score
    FROM
      info_user InfoU
    WHERE
      InfoU.last_visit_date = '2010-05-15'
    ) as InfoU
  WHERE
    InfoU.score BETWEEN REFG.value_min and REFG.value_max
    AND InfoU.game_id = REFG.game_id
  ) as Res
SET
  InfoU.grade_id = Res.grade_id
WHERE
  InfoU.last_visit_date = '2010-05-15'
  AND InfoU.game_id = Res.game_id
  AND InfoU.id = Res.id;
Merci !