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

Thực hiện truy vấn một lần đến một cơ sở dữ liệu và bảng khác

Giả sử nó có thể truy cập được bằng cách sử dụng cùng một thông tin đăng nhập cơ sở dữ liệu và trên cùng một máy chủ MySQL, thì cách dễ nhất là chạy một truy vấn chỉ định cơ sở dữ liệu và bảng trong FROM mệnh đề của truy vấn, chẳng hạn như:

ActiveRecord::Base.connection.select_one(
    "SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")

select_one sẽ trả về một giá trị băm của các cột. Để biết thêm thông tin về các phương pháp bạn có thể sử dụng trên connection đối tượng, xem tài liệu này .

Tùy chọn thứ hai là tạo một lớp con của ActiveRecord và gọi establish_connection :

class Blog < ActiveRecord::Base
  establish_connection :blog

  def self.most_recent_post
    connection.select_one("SELECT * FROM posts ...")
  end
end

Bạn cũng sẽ cần tạo một blog mục nhập cơ sở dữ liệu trong database.yml của bạn tập tin. Xem setting_connection để biết thêm chi tiết, mặc dù rất tiếc, việc sử dụng nó theo cách này chỉ thực sự được biết khi xem mã nguồn của establish_connection .

Sau đó, bạn có thể sử dụng kết nối cơ sở dữ liệu blog trong các truy vấn, như sau:

Blog.connection.select_one("SELECT * FROM posts ...")

Điều tuyệt vời khi làm theo cách này là bây giờ bạn có một nơi tuyệt vời để xác định một phương thức (trong lớp Blog, như một phương thức lớp) để tìm nạp dữ liệu, như tôi đã làm ở trên.

Cả hai chiến lược này đều hoạt động tốt với Rails 2.x hoặc 3.x.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kết nối MySQL với chương trình Java

  2. Bảng cơ sở dữ liệu, càng nhiều càng tốt?

  3. Thiết kế cơ sở dữ liệu quan hệ (MySQL)

  4. Các khung nhìn và bảng ánh xạ JPA có tính kế thừa

  5. Làm cách nào để viết các truy vấn trong MySQL có thể phân tích cú pháp dữ liệu JSON trong một cột?