0

テーブルを結合して、両方の列で並べ替えることができるかどうか疑問に思っていました。

たとえば、ロリポップと呼ばれるテーブルと、注目のロリポップと呼ばれるテーブルが 2 つある場合:

ロリポップは、注目の_ロリポップに属することができます

どちらの表にも「甘さ」という列があります

次のようなクエリを作成することは可能ですか。

Lollipop.joins(:featured_lollipops).order("sweetness ASC")

甘さが結合されたテーブルから来ている場合でも、返される結果は甘さでソートされたすべてのロリポップの ActiveRecord ハッシュですか?

前もって感謝します。

編集:

各列の甘さではなく、組み合わせた甘さで並べ替えることができる必要があります。

4

3 に答える 3

0

はい、あなたならできると思います。

Lollipop.joins(:featured_lollipop).
  select(
    "(lollipop.sweetness + featured_lollipop.sweetness) AS sorting_sweetness, lollipop.*"
  ).order("sorting_sweetness DESC")
于 2016-10-12T01:55:37.480 に答える
0

これは機能しますか?

a = Lollipop.joins(:featured_lollipop) + FeaturedLollipop.all
a.sort_by {|f| f.sweetness}
于 2012-09-11T16:52:48.343 に答える
0

orderメソッドでは、 と を使用して、lollipops.sweetness2featured_lollipops.sweetnessつのテーブルを区別できます。
次に例を示します。

.order("lollipops.sweetness ASC, featured_lollipops.sweetness DESC")
于 2012-09-11T16:25:20.777 に答える