Подобный дизайн обычно является плохой идеей, и вы не можете динамически выбирать стол для присоединения так, как вы думаете, но это можно сделать грубым, довольно грубым способом ...
SELECT stuff
, COALESCE(t2.something, t3.something, ....) AS otherTsomething
FROM t1
LEFT JOIN t2 ON t1.TableToJoin = "t2"
AND t1.JoinValue = CASE t1.FieldToJoin WHEN "a" THEN t2.a WHEN "b" THEN t2.b .... END
LEFT JOIN t3 ON t1.TableToJoin = "t3"
AND t1.JoinValue = CASE t1.FieldToJoin WHEN "a" THEN t3.a WHEN "b" THEN t3.b .... END
;
Обычно подходящим планом для данных такого типа является ссылка t1 и t3 на t1, тогда он просто становится ...
SELECT stuff, COALESCE(t2.something, t3.something, ...) AS otherSomething
FROM t1
LEFT JOIN t2 ON t1.id = t2.t1_id
LEFT JOIN t3 ON t1.id = t3.t1_id
;
(Для ваших целей это предполагает до некоторой степени, что только один t2 или t3 будет связан с записью t1, но это будет трудно осуществить, и в общем случае на самом деле не представляет проблемы.)