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

Как да оставите да се присъедините към 2 таблици в 2 различни бази данни?

Можете просто да се присъедините към таблицата на различна база данни. Трябва да посочите името на базата данни във вашия FROM клауза. За да го направите по-кратък, добавете ALIAS върху него,

SELECT  a.*,          -- this will display all columns of dba.`UserName`
      b.`Message`
FROM  dba.`UserName` a  -- or LEFT JOIN to show all rows whether it exists or not
      INNER JOIN dbB.`PrivateMessage` b    
         ON a.`username` = b.`username`

но по някакъв начин, има възможности в username няма да има съобщения. В този случай използвайте LEFT JOIN ако искате все пак да показвате всички записи на dba.Username .

Четейки от вашите коментари, таблиците имат различно collation . Работата около това е да посочите COLLATE относно обединените ви изявления,

SELECT  a.*,          -- this will display all columns of dba.`UserName`
      b.`Message`
FROM  dba.`UserName` COLLATE latin1_swedish_ci a  
      LEFT JOIN dbB.`PrivateMessage` COLLATE latin1_swedish_ci b    
         ON a.`username` = b.`username`

можете да промените latin1_swedish_ci на каквото искате.

За повече информация относно COLLATION вижте този пълен списък на

Набори от символи и съпоставяне в MySQL

Ако имате достатъчно привилегии да ALTER таблиците, просто използвайте този синтаксис, за да конвертирате ръчно и да съпоставите техните съпоставяния,

ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin2 COLLATE 'latin2_general_ci';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как може да повлияе на производителността, когато използвам UUID като първични ключове в MySQL

  2. mysql ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис;

  3. MYSQL заявка / дати по-стари от преди 1 седмица (всички дати и времена в UTC)

  4. Присъединяване на една и съща маса повече от веднъж

  5. Как да зададете изчакване за MySQL заявка с помощта на C API