您可以简单地加入不同数据库的表。您需要在
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';



