Mysql
 sql >> Database >  >> RDS >> Mysql

Unisci più tabelle con lo stesso nome di colonna

Potresti prendere in considerazione l'aggiunta di expiredAt alla tua tabella generale e la sua rimozione dalle altre, per rimuovere la duplicazione nello schema e per semplificare questa particolare query.

Se devi attenerti allo schema corrente, puoi utilizzare gli alias di tabella per risolvere l'ambiguità del nome e utilizzare due join e un'unione per creare il risultato che stai cercando:

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;

Anche l'approccio outer join menzionato in un'altra risposta risolverebbe il problema.