別のデータベースのテーブルに参加するだけです。 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の詳細については、この
の完全なリストを参照してください。
ALTERに十分な権限がある場合 テーブルの場合は、この構文を使用して、それらの照合を手動で変換して一致させます。
ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin2 COLLATE 'latin2_general_ci';