Другой способ - объединить все таблицы с помощью запроса на объединение :
SELECT *, 44 as table_origin FROM `Table_44`
UNION ALL
SELECT *, 58 as table_origin FROM `Table_58`;
Вы могли бы даже подготовить это как представление:
CREATE VIEW `AllTheTables` AS
SELECT *, 42 as table_origin FROM `Table_42`
UNION ALL
SELECT *, 44 as table_origin FROM `Table_44`
UNION ALL
SELECT *, 58 as table_origin FROM `Table_58`
UNION ALL
SELECT *, 69 as table_origin FROM `Table_69`;
И, таким образом, запросить его безопасно:
SELECT * FROM AllTheTables WHERE table_origin IN (44,58) AND something = 'foobar';
-- or --
SELECT * FROM AllTheTables WHERE table_origin = 42 AND something = 'the question';
В вашем конкретном случае это может выглядеть так:
SELECT var1, var2, var3, table_name
FROM table1 LEFT JOIN AllTheTables ON table1.var3=AllTheTables.table_origin