Mysql 如何使用关系中的列注释查询?
我有两种型号,Mysql 如何使用关系中的列注释查询?,mysql,sql,ruby-on-rails,arel,Mysql,Sql,Ruby On Rails,Arel,我有两种型号,Owner和Dog。狗属于主人,主人有很多狗 我可以为主人查询并用宠物的最需要的食物,这是狗的最需要的食物列的注释,其中包含最大寿命?我知道我可以通过多个查询来实现这一点,但我认为使用Arel仅通过一个查询就可以实现这一点 我最初的尝试是 Owner. joins(:dogs). select(Dog.arel_table[:food_needed].as('most_food_needed_for_pet')). select(Dog.arel_table[:life
Owner
和Dog
。狗属于主人,主人有很多狗
我可以为主人查询并用宠物的最需要的食物,这是狗的最需要的食物列的注释,其中包含最大寿命?我知道我可以通过多个查询来实现这一点,但我认为使用Arel
仅通过一个查询就可以实现这一点
我最初的尝试是
Owner.
joins(:dogs).
select(Dog.arel_table[:food_needed].as('most_food_needed_for_pet')).
select(Dog.arel_table[:lifespan].maximum).
group('dogs.owner_id')
但这不正确地用数据库中第一只狗的最大寿命,以及所需的食物,而不是寿命最长的狗的来标注每个主人
d = Dog.arel_table
o = Owner.arel_table
Owner.
select( o[Arel.star], d[:lifespan], d[:food_needed].as('most_food_needed_for_pet')).
joins(:dogs).
group(:owner_id).
having( dogs: { lifespan: d[:lifespan].maximum } )
[编辑以删除裸露的*
以防字段重叠]我运行了该命令,得到了一个Mysql2:error,请检查作为max\u id的语法。它生成的SQL是什么?