sql >> Database >  >> RDS >> Mysql

Meerdere tabellen in verschillende databases verbinden? MijnSql

Een goede strategie voor u zou kunnen zijn om één enkele MySQL-gebruiker te definiëren die dezelfde toegang heeft tot beide databases. Zoiets als dit:

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

Zodra u een verbinding tot stand brengt als die gebruiker, heeft u toegang tot beide databases en kunt u er gemakkelijk naar verwijzen door uw tabelnamen vooraf te laten gaan door de databasenaam.

SELECT * FROM siteinfo.sites;

U kunt op deze manier zelfs zonder problemen uw tabellen in databases samenvoegen. Dus om uw tweede vraag te beantwoorden, om alle drie de beschrijvingsrijen voor een site te krijgen, kunt u dit doen (ervan uitgaande dat de sites dezelfde id's in elke database hebben, of dezelfde naam, of iets unieks waaraan u kunt deelnemen):

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


  1. MySQL Ongeldige UTF8-tekenreeks bij het importeren van csv-tabel

  2. Eén Django-model, meerdere tafels?

  3. Hoe DevOps DBaaS (Database-as-a-Service) zou moeten gebruiken om hun applicatie-ontwikkeling te optimaliseren

  4. Cursor in procedure die meer waarden retourneert dan query