0

我只是想知道是否可以加入一个表,然后在两者上按列排序。

例如,如果我有两张桌子,一张称为棒棒糖,另一张称为特色棒棒糖:

棒棒糖可以属于特色棒棒糖

两个表都有一个名为“sweetness”的列

是否可以进行如下查询:

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

返回的结果是所有棒棒糖的 ActiveRecord 哈希,即使甜度来自连接表,也按甜度排序?

提前致谢。

编辑:

我需要能够按组合的甜度排序,而不是每列的甜度。

4

3 回答 3

0

在该order方法中,您可以使用lollipops.sweetnessandfeatured_lollipops.sweetness来区分这两个表。
这是一个例子:

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

这行得通吗?

a = Lollipop.joins(:featured_lollipop) + FeaturedLollipop.all
a.sort_by {|f| f.sweetness}
于 2012-09-11T16:52:48.343 回答
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 回答