QA@IT
«回答へ戻る

もっと細部に

887
 Movie.where("(#{subquery.to_sql}) @> ARRAY[?]", ['Fantasy', 'Middle-earth'])
 ```
 
-上記の回答に比べるとアレーっていうほど簡単ですね。もしPostgreSQLを使ってるようであればお試しあれ!!
+上記の回答に比べるとアレーっていうほど簡単ですね。もしPostgreSQLを使ってるようであればお試しあれ〜!!
 (関数インデックスつけないと、あまりの遅さにあれー?ってなりそうですけどね...)

別解を思いつきました。
PostgreSQL 8.4以上限定ですが、配列関数を駆使するとなかなか感じよくかけます。

subquery = Category.
  select('ARRAY_AGG(name::text)').
  joins(:movies).
  where('movie_categorizations.movie_id = movies.id')

Movie.where("(#{subquery.to_sql}) @> ARRAY[?]", ['Fantasy', 'Middle-earth'])

上記の回答に比べるとアレーっていうほど簡単ですね。もしPostgreSQLを使ってるようであればお試しあれ〜!!
(関数インデックスつけないと、あまりの遅さにあれー?ってなりそうですけどね...)

別解を思いつきました。
PostgreSQL 8.4以上限定ですが、配列関数を駆使するとなかなか感じよくかけます。

```ruby
subquery = Category.
  select('ARRAY_AGG(name::text)').
  joins(:movies).
  where('movie_categorizations.movie_id = movies.id')

Movie.where("(#{subquery.to_sql}) @> ARRAY[?]", ['Fantasy', 'Middle-earth'])
```

上記の回答に比べるとアレーっていうほど簡単ですね。もしPostgreSQLを使ってるようであればお試しあれ〜!!
(関数インデックスつけないと、あまりの遅さにあれー?ってなりそうですけどね...)

Add dajare

887
 ```
 
 上記の回答に比べるとアレーっていうほど簡単ですね。もしPostgreSQLを使ってるようであればお試しあれ!!
-(関数インデックスつけないと遅そうですけどね...)
+(関数インデックスつけないと、あまりの遅さにあれー?ってなりそうですけどね...)

別解を思いつきました。
PostgreSQL 8.4以上限定ですが、配列関数を駆使するとなかなか感じよくかけます。

subquery = Category.
  select('ARRAY_AGG(name::text)').
  joins(:movies).
  where('movie_categorizations.movie_id = movies.id')

Movie.where("(#{subquery.to_sql}) @> ARRAY[?]", ['Fantasy', 'Middle-earth'])

上記の回答に比べるとアレーっていうほど簡単ですね。もしPostgreSQLを使ってるようであればお試しあれ!!
(関数インデックスつけないと、あまりの遅さにあれー?ってなりそうですけどね...)

別解を思いつきました。
PostgreSQL 8.4以上限定ですが、配列関数を駆使するとなかなか感じよくかけます。

```ruby
subquery = Category.
  select('ARRAY_AGG(name::text)').
  joins(:movies).
  where('movie_categorizations.movie_id = movies.id')

Movie.where("(#{subquery.to_sql}) @> ARRAY[?]", ['Fantasy', 'Middle-earth'])
```

上記の回答に比べるとアレーっていうほど簡単ですね。もしPostgreSQLを使ってるようであればお試しあれ!!
(関数インデックスつけないと、あまりの遅さにあれー?ってなりそうですけどね...)

回答を投稿

別解を思いつきました。
PostgreSQL 8.4以上限定ですが、配列関数を駆使するとなかなか感じよくかけます。

subquery = Category.
  select('ARRAY_AGG(name::text)').
  joins(:movies).
  where('movie_categorizations.movie_id = movies.id')

Movie.where("(#{subquery.to_sql}) @> ARRAY[?]", ['Fantasy', 'Middle-earth'])

上記の回答に比べるとアレーっていうほど簡単ですね。もしPostgreSQLを使ってるようであればお試しあれ!!
(関数インデックスつけないと遅そうですけどね...)

別解を思いつきました。
PostgreSQL 8.4以上限定ですが、配列関数を駆使するとなかなか感じよくかけます。

```ruby
subquery = Category.
  select('ARRAY_AGG(name::text)').
  joins(:movies).
  where('movie_categorizations.movie_id = movies.id')

Movie.where("(#{subquery.to_sql}) @> ARRAY[?]", ['Fantasy', 'Middle-earth'])
```

上記の回答に比べるとアレーっていうほど簡単ですね。もしPostgreSQLを使ってるようであればお試しあれ!!
(関数インデックスつけないと遅そうですけどね...)