Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để còn lại tham gia 2 bảng trên 2 cơ sở dữ liệu khác nhau?

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';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chúng ta có thể giới hạn số hàng trong bảng trong MySQL không?

  2. Hợp nhất nhiều hàng thành một hàng và nhiều cột trên mysql

  3. Không có dữ liệu nào được cung cấp cho các tham số trong câu lệnh đã chuẩn bị

  4. Cập nhật chế độ xem tự động trong MySql

  5. Cách đặt múi giờ cơ sở dữ liệu cho phiên bản AWS RDS