У меня есть две модели, Owner
и Dog
. Собаки принадлежат Владельцам и Владельцам есть много Собаков.Как аннотировать запрос столбцом из отношения?
Могу ли я запросить владельцев и снабжать их most_food_needed_for_pet
, который является food_needed
столбец Dog
с максимальной lifespan
? Я знаю, что могу выполнить это с несколькими запросами, но я должен быть возможен только с одним запросом, используя 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')
Но это неправильно помечает каждый владелец с максимальной lifespan
, и food_needed
первого Dog
в базе данных вместо самого длинного живого Dog
.
я побежал, что и я получаю mysql2: ошибка, проверьте синтаксис около 'AS max_id'. – bab
Что такое SQL, который он генерирует? – smathy