2011-07-27 3 views
0

Je n'ai pas assez d'expérience avec le langage mysql. J'ai besoin d'une requête qui inclut une sous-requête où je sélectionne quelque chose d'une autre table avec le nom de la table comme une valeur de la valeur de la colonne de la table actuelle. La requête est quelque chose comme ceci:Valeur de la colonne en tant que nom de table

SELECT * FROM `action_{$id}` as `action` INNER JOIN `{$id}` as `table` ON 
    (
     (
     action.father_id='0' AND //some condition 
     ) 
     OR 
     (
      action.father_id<>'0' AND 
     table.type_id IN 
     (
      SELECT type FROM **action_{$id}.father_id** WHERE type_id='{$id}' 
      ) 
     ) 
    ) 

Dans cet exemple, l'action _ {$ id} .father_id (ou action.father_id) contient le nom d'une autre table de ma base de données.

Veuillez excuser mon mauvais anglais. Merci!

Répondre

1

Non, cela n'est pas possible et indique une erreur structurelle dans la conception de votre table. Peut-être que c'est juste moi mais n'est-ce pas plutôt redondant?

+0

C'est possible. Mais ta réponse est juste. Mauvaise idée d'apprendre à un homme à tirer sur sa jambe lui-même. –

+0

Je sais que j'aurai une erreur mais je pensais que c'est quelque chose de similaire, une autre syntaxe ... De toute façon avec quelque chose comme ça, ma requête devrait être très lente. Merci pour cette réponse (c'est une super communauté)! –

Questions connexes