Mysql
 sql >> Base de données >  >> RDS >> Mysql

Joindre plusieurs tables avec le même nom de colonne

Vous voudrez peut-être envisager d'ajouter expiredAt à votre table générale et de la supprimer des autres, de supprimer la duplication dans le schéma et de simplifier cette requête particulière.

Si vous devez vous en tenir à votre schéma actuel, vous pouvez utiliser des alias de table pour résoudre l'ambiguïté du nom, et utiliser deux jointures et une union pour créer le résultat que vous recherchez :

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;

L'approche de jointure externe mentionnée dans une autre réponse résoudrait également le problème.