Q:

Nome de tabela variável em query MySQL com CONCAT()

É possível usar CONCAT para formar o nome da tabela a ser consultada?
Exemplo:
SELECT T1.id, T1.col FROM tbl AS T1
LEFT JOIN CONCAT('tabela_prefixo_', t1.col) AS T2 ON T2.id = T1.id 

A query real é bem mais complexa do que isso. Apenas fiz um exemplo curto para simplificar a questão.

A:

Pesquisei muito sobre o assunto e encontrei soluções diversas, porém, nenhuma das soluções era adequada para esse caso específico.
De um modo geral, uma solução é usar o prepared statements do SQL. Não é o prepare statement do PDO ou outra library, mas diretamente na sintaxe SQL.
O problema é que no meu caso, parte do nome da tabela provém da mesma consulta na coluna "t1.col". 
Abaixo, um exemplo de montagem de nome de tabela dinamicamente com Prepare Statement:
SET @b := SELECT CONCAT('changes',year,month) FROM whichchanges;
SET @x := SELECT * FROM @b;
Prepare stmt FROM @b; # Aqui nesse ponto, o primeiro SELECT é interpretado.
Prepare stmt FROM @x;
Execute stmt;

*Peguei esse exemplo aleatoriamente. Fonte: https://stackoverflow.com/questions/10480429/how-to-select-from-dynamic-table-name
No meu caso não funciona pois necessito consultar uma coluna da query principal.
Como a query que concatena é interpretada antes pelo "Prepare stmt", retorna erro de coluna não existente "t1.col".
A idéia por trás disso tudo era reduzir execuções de queries SQL dentro de um laço de repetição. Na conclusão final não teve como fugir. A solução foi montar várias consultas dentro de um laço de repetição.

