gpt4 book ai didi

sql - 不同的加入 Rails

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

视频有很多事件

我正在尝试获取所有在未来安排了事件的视频。

我已经有了这个:

named_scope :scheduled_in_future, :joins => :event, :conditions => ["event.scheduled_start > ? AND event.status = ?", Time.now.to_i, 'PENDING']

这行得通,但如果同一个视频在未来有多个事件,它会给我重复的视频记录。当然,我可以遍历数组并清除重复项,但必须有一种 SQL 方法才能做到这一点。

我尝试添加一个

:select => "DISTINCT(video.id)"

但它只返回 ID 字段而不是整个记录。

最佳答案

尝试使用 :include 而不是 :joins,您应该不会再看到任何重复的视频结果。

此外,您应该在命名范围内使用 lambda,否则 Time.now 将在您第一次使用它时被缓存,您将开始得到不正确的结果。

named_scope :scheduled_in_future, lambda {
{
:include => :events,
:conditions => ["event.scheduled_start > ? AND event.status = ?", Time.now.to_i, 'PENDING']
}
}

关于sql - 不同的加入 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749695/

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