タグ

sqlとarelに関するtakaesuのブックマーク (2)

  • Arelでクエリを書くのはやめた方が良い5つの理由

    はじめに:Arelって何? みなさん、Arel(アレル)ってご存知ですか? ArelはActive Recordの内部で使用されるSQL生成ライブラリです。 Railsのクエリの書き方をググると、ときどきArelを使った実装例が見つかるので、見たことがある、もしくは何度か使ったことがある、という人もいると思います。 Arelをよく知らない人のために、Arelの利用例をちょっと見てみましょう。 たとえば「コメント文中に、"ruby"が含まれるユーザープロフィールを検索したい」という場合、Rails標準のクエリインターフェースを使うと条件部分のSQLを文字列で書く必要があります。(PostgreSQL環境を想定) Profile.where( "profiles.comment ILIKE ?", "%ruby%" ).to_sql #=> SELECT "profiles".* # FROM

    Arelでクエリを書くのはやめた方が良い5つの理由
  • ActiveRecordでサブクエリ+NOT EXISTSを発行 - Qiita

    概要 ActiveRecordを利用したコーディングにおいて、NOT EXISTSとINNER JOINを組み合わせた、少し複雑なクエリが必要となった。 そこで、Arelを使用した、生のSQLを書かない方法で実装してみた。 Arelとは 第43回 Rails 3を支える名脇役たち その1 - Arel - Arelとは,「Relational Algebra」または「Active Relation」の略で,その名前から想像がつくとおり,ActiveRecordから派生した,「関係代数」をRubyのオブジェクトで取り扱うためのライブラリです。 ドキュメントによれば,Arelは, 面倒なSQLの生成を簡単にしてくれて, さまざまなデータベースシステムに対応している, 「フレームワークのフレームワーク」を目指して作られています。 つまり,Arelを使えば,DBの互換性やSQL文字列の生成などに惑

    ActiveRecordでサブクエリ+NOT EXISTSを発行 - Qiita
  • 1