Bạn có thể chỉ cần tham gia vào bảng cơ sở dữ liệu khác nhau. Bạn cần chỉ định tên cơ sở dữ liệu trong FROM
của mình mệnh đề. Để ngắn hơn, hãy thêm ALIAS
trên đó,
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`
nhưng một số cách, có khả năng có trong một username
sẽ không có tin nhắn. Trong trường hợp này, hãy sử dụng LEFT JOIN
nếu bạn vẫn muốn hiển thị tất cả các bản ghi của dba.Username
.
Đọc từ nhận xét của bạn, các bảng có collation
khác nhau . Công việc xung quanh việc này là chỉ định COLLATE
về các tuyên bố đã tham gia của bạn,
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`
bạn có thể thay đổi latin1_swedish_ci
cho bất cứ điều gì bạn muốn.
Để biết thêm thông tin về COLLATION, hãy xem danh sách đầy đủ này về
Bộ ký tự và đối chiếu trong MySQL
Nếu bạn có đủ đặc quyền để ALTER
các bảng, chỉ cần sử dụng cú pháp này để chuyển đổi và khớp các đối chiếu của chúng theo cách thủ công,
ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin2 COLLATE 'latin2_general_ci';