ActiveRecordのwhereが素晴らしい件
Railsのwhereは非常に使い勝手が良い。
慣れれば、普通にSQLを書くより読みやすいと思う。
一番簡単な例だと、次のものになるが、まあ便利ですねくらいのものである。
Article.where(id: [1,3]) #=> select * from articles where id in (1,3)
しかし、次のようにサブクエリを使うことができる点が素晴らしい。
Article.where(id: Blog.select(id).where(title: 'hoge')) #=> select * from articles where id in (select id from blogs where title = 'hoge')
当然、一度変数に落としてサブクエリ化もできる。
sub_query = Blog.select(id).where(title: 'hoge') Article.where(id: sub_query) #=> select * from articles where id in (select id from blogs where title = 'hoge')
他にも、NOT IN な SQLが書けたりする。すごい
Ruby on Rails で NOT IN な SQL をかく。 - そんなこと覚えてない