sql >> Base de Datos >  >> RDS >> Mysql

Unir varias tablas con el mismo nombre de columna

Es posible que desee considerar agregar expiredAt a su tabla general y eliminarla de las demás, para eliminar la duplicación en el esquema y simplificar esta consulta en particular.

Si necesita apegarse a su esquema actual, puede usar alias de tabla para resolver la ambigüedad del nombre y usar dos uniones y una unión para crear el resultado que está buscando:

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;

El enfoque de unión externa mencionado en otra respuesta también resolvería el problema.