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

Collegare più tabelle in database diversi? MySql

Una buona strategia per te potrebbe essere quella di definire un singolo utente MySQL che abbia lo stesso accesso a entrambi i database. Qualcosa del genere:

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

Una volta stabilita una connessione come quell'utente, avrai accesso a entrambi i database e potrai consultarli facilmente anteponendo i nomi delle tabelle al nome del database.

SELECT * FROM siteinfo.sites;

Puoi persino unire le tue tabelle tra database in questo modo senza difficoltà. Quindi, per rispondere alla tua seconda domanda, per ottenere tutte e tre le righe descrittive di un sito, puoi farlo (supponendo che i siti abbiano gli stessi ID in ogni database, o lo stesso nome, o qualcosa di unico a cui puoi unirti):

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