подзапрос gobuffalo.pop с присоединением

# #go

Вопрос:

Я пытаюсь выполнить запрос с подзапросом и присоединением в GoBuffalo.pop (github.com/gobuffalo/pop). Я изменяю существующий запрос с помощью соединения (автоматически выполняемого ГоБуффало). Я пытаюсь добавить подзапрос к этому запросу, но это приводит к тому, что СОЕДИНЕНИЕ не работает.

Первоначально это был мой запрос:

 r.db.Where("tenant_id = ?", tenantID).Order("sequence ASC").Eager().All(questions)
 

Моя таблица бд questions имеет отношение «один к question_answer_options одному», и question_answer_options записи автоматически загружаются в свойство среза в структуре вопроса, потому что я звоню Eager() .

 type Question struct {
    ID            int64                  `db:"id" json:"id"`
    UUID          uuid.UUID              `db:"uuid" json:"uuid"`
    Text          string                 `db:"text" json:"text"`
    Hint          string                 `db:"hint" json:"hint"`
    InputType     string                 `db:"input_type" json:"input_type"`
    AnswerOptions []QuestionAnswerOption `has_many:"question_answer_options" json:"answer_options"`
    Sequence      int64                  `db:"sequence" json:"sequence"`
    Enabled       bool                   `db:"enabled" json:"enabled"`
    TenantID      int64                  `db:"tenant_id" json:"tenant_id"`
    CreatedAt     time.Time              `db:"created_at"`
    UpdatedAt     time.Time              `db:"updated_at"`
    AnswerCount   int64                      `db:"answer_count" rw:"r" json:"answer_count"`
}
 

Это мой измененный запрос, в котором я выбираю поля вопроса с добавлением подзапроса:

 r.db.Select("questions.created_at", "questions.enabled", "questions.hint", "questions.id", "questions.input_type", "questions.sequence", "questions.tenant_id", "questions.text", "questions.updated_at", "questions.uuid",
    `(select count(qa.id) 
                    from question_answers qa 
                    where qa.question_id = questions.id) "answer_count")`).
        Where("tenant_id = ?", tenantID).Order("sequence ASC").Eager().All(questions)
 

Когда я выполняю этот запрос, у моего объекта вопроса поля верхнего уровня заполнены правильно, но он не заполняет свойство среза AnswerOptions.

Нужно ли мне выбирать все поля из question_answer_options таблицы? Если да, то как мне создать псевдоним для выбранных столбцов, чтобы ГоБуффало знал, как заполнять объекты? Например, оба Question и QuestionAnswerOption имеют свойство/поле идентификатора.