gpt4 book ai didi

sql - 如何获得不同的多态关联

转载 作者:数据小太阳 更新时间:2023-10-29 07:03:24 25 4
gpt4 key购买 nike

我试图在没有任何重复的情况下显示多态关系列表。

我有一个 StoreViews 表,其中包含一个名为 viewable 的多态字段(因此我的表中有一个 viewable_id 和 viewable_type 列)。现在我想显示 View ,每个多态关系只显示一次,没有重复。

@views = StoreView.
.distinct(:viewable_id)
.distinct(:viewable_type)
.order("created_at DESC")
.limit(10)

因此,如果 StoreViews 中有两条记录,并且都具有相同的可见关系,@views 应该只返回最近的一条。然而,事实并非如此。

最佳答案

如果指定了 SELECT DISTINCT,则

ORDER BY 项必须出现在选择列表中。有几种方法可以work around this issue .

在此示例中,使用聚合函数应该可行:

@views = StoreView
.select('DISTINCT viewable_type, viewable_id, MAX(created_at)')
.group(:viewable_type, :viewable_id)
.order('MAX(created_at) DESC')
.limit(10)

关于sql - 如何获得不同的多态关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53880608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com