sql >> Databasteknik >  >> RDS >> Mysql

Koppla ihop flera tabeller i olika databaser? MySql

En bra strategi för dig kan vara att definiera en enda MySQL-användare som har samma tillgång till båda databaserna. Något så här:

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 väl upprättat en anslutning som den användaren har du tillgång till båda databaserna och kan enkelt referera till dem genom att prefixet dina tabellnamn med databasnamnet.

SELECT * FROM siteinfo.sites;

Du kan till och med slå samman dina tabeller över databaser på detta sätt utan svårighet. Så för att svara på din andra fråga, för att få alla tre beskrivningsraderna för en webbplats, kan du göra detta (förutsatt att webbplatserna har samma ID i varje databas, eller samma namn, eller något unikt som du kan gå med på):

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


  1. Returnera id om en rad finns, INSERT annars

  2. importera sql-fil till en databas med wamp

  3. Likheter och skillnader mellan funktionerna RANK, DENSE_RANK och ROW_NUMBER

  4. Räkna förekomster baserat på flera villkor för två tabeller