给出这些模型
ModelOne
has_many :model_twos
ModelTwo
belongs_to :model_one
string :field_one
并给出这些记录
model_twos
id field_one model_one_id
1 "val 1" 1
2 "val 2" 1
3 "val 3" 1
4 "val 4" 2
5 "val 5" 2
6 "val 6" 2
如何在一个查询中检索所有model_ones
和model_ones
model_twos
field_one
值,而不返回每个model_one
的3个实例
我尝试了ModelOne.joins("LEFT JOIN model_twos ON model_twos.model_one_id = model_ones.id").select("DISTINCT model_ones.*, model_twos.field_one as model_two_field_one")
的各种排列,但没有给出我正在寻找的结果
我想要一个rails方式来做,但我也很高兴有一个可以工作的SQL查询
答案 0 :(得分:0)
我设法使用
让它工作 ModelOne.joins("LEFT JOIN model_twos ON model_twos.model_one_id = model_ones.id").select("DISTINCT model_ones.*, (SELECT array(SELECT model_twos.field_one FROM model_twos WHERE model_twos.model_one_id = model_ones.id)) as model_two_field_one")