mysql REJOINDRE SUR SI()?

Je suis en train d'utiliser sql comme ceci:

SELECT t.*, t2.* FROM templates t
LEFT JOIN IF(t.t_type = 0,'templates_email',
IF(t.t_type = 1,'templates_sms','templates_fax')) t2
ON t.t_id = t2.t_id;

Est-il possible de faire quelque chose comme ça?

fondamentalement, je veux rejoindre sur l'un des trois tables en fonction de la valeur de la ligne.

Est-ce recommandé si c'est possible?


mise à jour
Donc,

fondamentalement la templates table est la table qui contient toutes les informations que chaque modèle doit avoir, par exemple, le nom, id, description

ensuite, vous avez la templates_x tableaux ces tableaux contiennent les champs qui sont propres à chaque type de modèle.
(Il y en a bien quelques-uns, et avoir une seule table avec les champs null pour ceux qui ne sont pas applicable n'est pas pratique).

Les tables sont appelés templates_x toutefois, la bonne x est stocké dans les modèles de table comme un int flag.

La jointure entre le templates_x tables et les templates tableau est par le biais de la t_id.

De sorte que proposez-vous?

donc vous voulez dire avoir une table qui est essentiellement [id | tablename] [0 | templates_email] [1 | templates_sms] [2 | templates_fax], puis rejoindre la table et de se joindre à la valeur de qui?
Autant que je sache, même que ça ne marchera pas, comme le nom de la table pour une jointure ne peut pas être dynamique.
Double Possible de MySQL REJOINDRE SI les conditions

OriginalL'auteur Hailwood | 2010-09-27