Mysql
 sql >> база данни >  >> RDS >> Mysql

Свързване на няколко таблици в различни бази данни? MySql

Добра стратегия за вас може да бъде да дефинирате един потребител на MySQL, който има еднакъв достъп до двете бази данни. Нещо като това:

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

След като установите връзка като този потребител, ще имате достъп до двете бази данни и ще можете лесно да ги препратите, като поставите префикс към имената на вашите таблици с името на базата данни.

SELECT * FROM siteinfo.sites;

Можете дори да обедините таблиците си в бази данни по този начин без затруднения. Така че, за да отговорите на втория си въпрос, за да получите и трите реда с описание за даден сайт, можете да направите това (ако приемем, че сайтовете имат едни и същи идентификатори във всяка база данни, или същото име, или нещо уникално, към което можете да се присъедините):

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете таблица въз основа на JDBC Result Set

  2. MySQL/InnoDB и продължителни заявки

  3. променете името на таблицата на главни букви

  4. Търся еквивалента на dictcursor в flaskext.mysql

  5. проблем в отношенията много към много