Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Conectar várias tabelas em diferentes bancos de dados? MySql


Uma boa estratégia para você pode ser definir um único usuário MySQL que tenha o mesmo acesso aos dois bancos de dados. Algo assim:
GRANT ALL ON siteinfo.* TO [email protected] IDENTIFIED BY 'password';
GRANT ALL ON sitedescriptions.* TO [email protected] IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Depois de estabelecer uma conexão com esse usuário, você terá acesso a ambos os bancos de dados e poderá consultá-los facilmente prefixando os nomes das tabelas com o nome do banco de dados.
SELECT * FROM siteinfo.sites;

Você pode até unir suas tabelas em bancos de dados dessa maneira sem dificuldade. Então, para responder à sua segunda pergunta, para obter todas as três linhas de descrição de um site, você pode fazer isso (supondo que os sites tenham os mesmos ids em cada banco de dados, ou o mesmo nome, ou algo único no qual você possa participar):
SELECT * FROM
    siteinfo.sites AS s LEFT JOIN 
    sitedescriptions.description AS d ON s.siteId=d.siteId
WHERE s.siteId=123;