Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Junte várias tabelas com o mesmo nome de coluna


Você pode querer considerar adicionar expiredAt à sua tabela geral e removê-la das outras, para remover a duplicação no esquema e tornar essa consulta específica mais simples.

Se você precisar manter seu esquema atual, poderá usar aliases de tabela para resolver a ambiguidade do nome e usar duas junções e uma união para criar o resultado que está procurando:
SELECT g.id, g.scenario, f.expiresAt 
FROM generalTable g
JOIN facebookTable f
ON g.id = f.id
UNION ALL
SELECT g.id, g.scenario, c.expiresAt 
FROM generalTable g
JOIN chiefTable c
ON g.id = c.id;

A abordagem de junção externa mencionada em outra resposta também resolveria o problema.