【问题标题】:Rails select rows from a table where a related table's all rows have a certain valueRails 从相关表的所有行都具有特定值的表中选择行
【发布时间】:2012-11-02 10:43:37
【问题描述】:

基本上我有 3 张桌子。忽略语法。我只是想展示这个想法。

ModelA:
    belongs_to :ModelB

ModelB:
    has_many: ModelA
    has_and_belongs_to_many :ModelC

ModelC
    has_and_belongs_to_many :ModelB

如何从 ModelC 的所有行都有标志 = 'Y' 的 ModelA 中获取所有行?
我试过了:

ModelA.joins(:ModelB => :ModelC).where("#{ModelC.table_name}.flag = 'Y'")

和其他十几种方法都没有成功。我知道上面的代码并没有检查所有的行,但这是我所知道的。我更喜欢使用 ActiveRecord。

【问题讨论】:

    标签: sql ruby-on-rails activerecord


    【解决方案1】:

    他们的解决方案可以解决您的问题,但不是完美的解决方案

    ModelA.all - ModelA.joins(:ModelB => :ModelC).where("#{ModelC.table_name}.flag != 'Y'")
    

    【讨论】:

      猜你喜欢
      • 2014-09-15
      • 2017-08-29
      • 1970-01-01
      • 2021-02-17
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      • 2020-10-05
      相关资源
      最近更新 更多