sql - Ruby on Rails 难查询
问题描述
我需要创建困难的查询,但我不明白如何以更有效的方式做到这一点。
情况如下:
class Owner
has_many: A
end
class A
has_many: C
end
# category: string
class B
has_many: C
end
# flag: boolean
class C
belongs_to: A
belongs_to: B
scope :filtered, -> { where(b: { category: 'smth' }) }
end
我需要获取属于特定所有者的所有 A 记录,但以下人员除外:
a.c.filtered.last.flag == true
acfiltered 可以为空,ac 可以为空,在这种情况下我不需要排除这样的 A 记录。
当然,我可以在 for 循环中做到这一点,但是我的记录太多,我认为这不是一种有效的方式。
解决方案
这样的事情应该有效吗?
A.where(c: C.filtered.where(flag: true))
推荐阅读
- javascript - 关于 JS 脚本参数参数的建议
- java - 我项目中的 Next 和 Previous 按钮没有按预期工作,我的代码有问题,但我不明白为什么
- mongodb - 添加多个文件时,mongoose populate 返回 null
- javascript - 子目录上的nodejs配置
- java - 联系人组 GROUP_VISIBLE 和 GROUP_IS_READ_ONLY 被忽略了吗?
- shell - 如何将输出刷新到鱼壳中的 zenity 进度条
- java - `HHH000204: 处理 PersistenceUnitInfo` 后挂起
- raspberry-pi3 - Raspberry Pi 3: Google Assistant Segmentation Fault
- apache-poi - 如何重命名幻灯片母版
- c - '->' 的无效类型参数(有 'fd_set')