sql >> データベース >  >> RDS >> Mysql

別のデータベースとテーブルに対して1回限りのクエリを実行する

    同じデータベースクレデンシャルを使用して同じMySQLサーバーでアクセスできると仮定すると、最も簡単な方法は、FROMでデータベースとテーブルを指定するクエリを実行することです。 クエリの句など:

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

    select_one 列のハッシュを値に返します。 connectionで使用できるメソッドの詳細については オブジェクトについては、このドキュメント を参照してください。 。

    2番目のオプションは、ActiveRecordのサブクラスを作成し、establish_connectionを呼び出すことです。 :

    class Blog < ActiveRecord::Base
      establish_connection :blog
    
      def self.most_recent_post
        connection.select_one("SELECT * FROM posts ...")
      end
    end
    

    また、blogを作成する必要があります database.ymlのデータベースエントリ ファイル。 establish_connection を参照してください 詳細については、残念ながらこの方法で使用することは、establish_connectionのソースコードを確認することによってのみ実際にわかります。 。

    次に、次のように、ブログデータベース接続をクエリで使用できます。

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

    この方法でこれを行うことの良い点は、上記で行ったように、データをフェッチするためのメソッドを(Blogクラスでクラスメソッドとして)定義するための良い場所があることです。

    これらの戦略はどちらも、Rails2.xまたは3.xで正常に機能するはずです。




    1. 進化する連絡先情報はデータベースを変更することを意味しますか?

    2. ORDERBYエイリアスが機能しない

    3. Oracleは24時間以上表示します

    4. MSAccessのテーブル関係の種類