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

Forbinde flere tabeller i forskellige databaser? MySql

En god strategi for dig kan være at definere en enkelt MySQL-bruger, der har samme adgang til begge databaser. Noget som dette:

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

Når du har etableret en forbindelse som den bruger, har du adgang til begge databaser og kan nemt referere til dem ved at sætte databasenavnet foran dine tabelnavne.

SELECT * FROM siteinfo.sites;

Du kan endda samle dine tabeller på tværs af databaser på denne måde uden problemer. Så for at besvare dit andet spørgsmål, for at få alle tre beskrivelsesrækker for et websted, kan du gøre dette (forudsat at webstederne har de samme id'er i hver database, eller det samme navn eller noget unikt, som du kan deltage på):

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


  1. MariaDB – MySQL – Vis motorer for at vise alle tilgængelige og understøttede motorer

  2. Kan ikke korrekt indsætte græske tegn i mysql-databasen

  3. Opret en CHECK-begrænsning i SQLite

  4. Generer SQL for at opdatere primærnøgle