別のデータベースのテーブルに参加するだけです。 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';