Можете просто да се присъедините към таблицата на различна база данни. Трябва да посочите името на базата данни във вашия 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';