Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verbinden Sie mehrere Tabellen mit demselben Spaltennamen

Sie sollten in Erwägung ziehen, expiredAt zu Ihrer allgemeinen Tabelle hinzuzufügen und aus den anderen zu entfernen, um Duplikate im Schema zu entfernen und diese spezielle Abfrage zu vereinfachen.

Wenn Sie bei Ihrem aktuellen Schema bleiben müssen, können Sie Tabellenaliase verwenden, um die Namensmehrdeutigkeit aufzulösen, und zwei Joins und eine Union verwenden, um das gesuchte Ergebnis zu erzeugen:

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;

Der in einer anderen Antwort erwähnte Outer-Join-Ansatz würde das Problem ebenfalls lösen.