sql >> Base de Datos >  >> RDS >> Mysql

¿Conectar varias tablas en diferentes bases de datos? MySql

Una buena estrategia para usted podría ser definir un solo usuario de MySQL que tenga el mismo acceso a ambas bases de datos. Algo como esto:

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

Una vez que establezca una conexión como ese usuario, tendrá acceso a ambas bases de datos y podrá hacer referencia a ellas fácilmente anteponiendo los nombres de sus tablas con el nombre de la base de datos.

SELECT * FROM siteinfo.sites;

Incluso puede unir sus tablas a través de bases de datos de esta manera sin dificultad. Entonces, para responder a su segunda pregunta, para obtener las tres filas de descripción de un sitio, podría hacer esto (suponiendo que los sitios tengan los mismos identificadores en cada base de datos, o el mismo nombre, o algo único a lo que pueda unirse):

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