Selecionar segunda tabela de acordo com o campo da primeira
Olá pessoal,
Eu tenho as seguintes tabelas:
clientes
clientes_pf
clientes_pj
Na tabela "clientes" eu armazeno as informações comuns a todos os tipos de clientes (ID, email, telefones, data de cadastro, etc), na tabela "clientes_pf" os dados de pessoas físicas (CPF, RG, sexo, data de nascimento, etc) e na tabela "clientes_pj" os dados de pessoas jurídicas (CNPJ, IE, nome do responsável, etc).
Pois bem, a minha dúvida é como fazer uma consulta com duas tabelas onde a segunda tabela seja definida de acordo com um campo da primeira.
Na primeira tabela (clientes) eu tenho um campo chamado "tipo_pessoa" do tipo ENUM que pode ser "fisica" ou "juridica". Se este campo estiver definido como "fisica" selecionar a tabela "clientes_pf" e se estiver como "fisica" a tabela "clientes_pj".
Eu tentei fazer a consulta da seguinte forma:
-----------------------------------------
SELECT c.tipo_pessoa AS tipo, c.email, c.telefone_1, IF('tipo' = 'Fisica', 'clientes_pf', 'clientes_pj') AS t2, t2.*
FROM clientes AS c
INNER JOIN t2
ON c.id_cliente = t2.id_cliente
-----------------------------------------
Eu criei uma condição, se o valor do campo "tipo_pessoa" for "Fisica" eu seto o nome da tabela como "clientes_pf", se não, como "clientes_pj".
O nome da tabela é colocado no alias "t2", até aí tudo bem, eu testei e está funcionando.
O problema está quando eu faço o INNER JOIN e o ON, eu coloco o alias "t2" mas ele interpreta como se "t2" fosse o nome da tabela. Como faço pra isso não acontecer?
Espero ter sido claro e agradeço qualquer ajuda. :)