2013-05-31 5 views
0

J'essaie de créer une table temporaire pour les données d'application que j'ai. Quand je lance la sous requête, il fonctionne très bien, mais quand je le lance dans les paramètres de la table temporaire, il échoue avecCréation d'une table temporaire avec CROSS JOIN

Code d'erreur: 1054. Unknown column « getApplicationsForRespID.app_id » dans « où la clause »

CREATE TEMPORARY TABLE CurrentApplications ENGINE=MEMORY AS 
(
SELECT *, planning_scheme.markus_ra, planning_scheme.metro_or_rural 
FROM application 
INNER JOIN key_table ON key_table.app_id = application.app_id 
INNER JOIN planning_scheme ON planning_scheme.ps_code = application.planning_scheme 

CROSS JOIN 
(
    SELECT key_table.app_id AS app_id2, planning_return.resp_authority AS resp_id 
    FROM key_table 
    INNER JOIN planning_return ON key_table.return_id = planning_return.return_id 

)getApplicationsForRespID 

WHERE application.app_id = getApplicationsForRespID.app_id 
AND key_table.is_current = 1 

Répondre

2

Dans votre sous-requête de jointure croisée, vous avez key_table.app_id AS app_id2, ce qui signifie qu'aucun champ getApplicationsForRespID.app_id n'existe. À la place, utilisez getApplicationsForRespID.app_id2 dans la clause WHERE.

+0

Ouais je viens de repérer ça merci! –