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

Mehrere Tabellen in verschiedenen Datenbanken verbinden? MySQL

Eine gute Strategie für Sie könnte darin bestehen, einen einzelnen MySQL-Benutzer zu definieren, der denselben Zugriff auf beide Datenbanken hat. Etwa so:

GRANT ALL ON siteinfo.* TO [email protected] IDENTIFIED BY 'password';
GRANT ALL ON sitedescriptions.* TO [email protected] IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Sobald Sie als dieser Benutzer eine Verbindung hergestellt haben, haben Sie Zugriff auf beide Datenbanken und können einfach auf sie verweisen, indem Sie Ihren Tabellennamen den Datenbanknamen voranstellen.

SELECT * FROM siteinfo.sites;

Sogar Ihre Tabellen können Sie auf diese Weise problemlos datenbankübergreifend zusammenführen. Um Ihre zweite Frage zu beantworten und alle drei Beschreibungszeilen für eine Site zu erhalten, könnten Sie Folgendes tun (vorausgesetzt, die Sites haben in jeder Datenbank dieselben IDs oder denselben Namen oder etwas Einzigartiges, dem Sie beitreten können):

SELECT * FROM
    siteinfo.sites AS s LEFT JOIN 
    sitedescriptions.description AS d ON s.siteId=d.siteId
WHERE s.siteId=123;