Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Rails从相关表的所有行都具有特定值的表中选择行_Sql_Ruby On Rails_Activerecord - Fatal编程技术网

Sql Rails从相关表的所有行都具有特定值的表中选择行

Sql Rails从相关表的所有行都具有特定值的表中选择行,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,基本上我有三张桌子。忽略语法。我只是想展示一下这个想法 ModelA: belongs_to :ModelB ModelB: has_many: ModelA has_and_belongs_to_many :ModelC ModelC has_and_belongs_to_many :ModelB 如果ModelC的所有行都有flag='Y',如何从ModelA获取所有行? 我试过: ModelA.joins(:ModelB => :ModelC).

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

ModelA:
    belongs_to :ModelB

ModelB:
    has_many: ModelA
    has_and_belongs_to_many :ModelC

ModelC
    has_and_belongs_to_many :ModelB
如果ModelC的所有行都有flag='Y',如何从ModelA获取所有行? 我试过:

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

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

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

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