L'accès à une table temporaire à plusieurs reprises dans MySql

J'ai essayé d'utiliser une table temporaire comme un résultat intermédiaire titulaire d'une instruction SELECT. Le problème, c'est que je ne peux pas accéder à la table temp à plusieurs reprises dans d'autres requêtes, déclaration qui, je l'espère, être possible c'est à dire fait de la de la table temporaire inutile.

Est-il une alternative à des tables temporaires dans MySql qui me permet de m'extraire de mon instruction SQL.

Je ne peux pas utiliser les procédures de la banque (ne peut pas y accéder à partir de la web-framework version utilisée dans l'entreprise) et je ne veux pas utiliser un curseur.

Edit:

Bien mon code ressemble à ceci:

Temp la création de la table:

CREATE TEMPORARY TABLE dates_with_entries (
  seq  INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  datum VARCHAR(32)
);

INSERT INTO dates_with_entries (datum) SELECT datum AS Datum from project_times
    WHERE user_id = 20 GROUP BY datum ORDER BY datum desc LIMIT 13;

Le code où j'utilise mon temp tableau ressemble un peu à ça (je simpled vers le bas pour le problème que j'ai..)

SELECT 
...
FROM (SELECT entrie_date AS datum FROM dates_with_entries ) AS sub_result
INNER JOIN project_times
    ON sub_result.datum = project_times.datum AND project_times.user_id = 20
LEFT JOIN works AS w ON project_times.work_id = w.id
LEFT JOIN sub_projects AS sp ON sp.id = w.sub_project_id
LEFT JOIN projects AS p ON p.id = sp.project_id
GROUP BY datum
UNION(
    SELECT
      ..
  FROM (SELECT entrie_date AS datum FROM dates_with_entries ) AS sub_result
  INNER JOIN project_times AS pt ON pt.datum = sub_result.datum
  INNER JOIN works AS w on w.id = pt.work_id
  INNER JOIN sub_projects AS sp on w.sub_project_id = sp.id
  INNER JOIN projects AS p ON sp.project_id = p.id
  WHERE pt.user_id = 20
);

Les numéros seront remplacées plus tard par des rubis, c'est uniquement pour les tests de l'instruction SQL.

Montrent un exemple de SQL pour la création et l'utilisation de la table temporaire.

OriginalL'auteur Mark | 2010-11-02