Drizzle join in a subquery results in ambiguous columns
This fails with
Generates the following ambiguous sql:
id ambiguousid ambiguous error, since the orderedQuestions.survey_question.idorderedQuestions.survey_question.id reference in the field selection of the second query generates the sql as 'id''id' rather than 'survey_question'.'id''survey_question'.'id' as it should. const orderedQuestions = tx
.select()
.from(surveyQuestion)
.leftJoin(surveySection, eq(surveySection.id, surveyQuestion.surveySectionId))
.where(eq(surveySection.surveyId, LIFESTYLE_AUDIT_SURVEY_ID))
.orderBy(surveySection.index, surveyQuestion.index)
.as("orderedQuestions");
console.log(
await tx
.select({ id: orderedQuestions.survey_question.id })
.from(orderedQuestions)
.toSQL()
); const orderedQuestions = tx
.select()
.from(surveyQuestion)
.leftJoin(surveySection, eq(surveySection.id, surveyQuestion.surveySectionId))
.where(eq(surveySection.surveyId, LIFESTYLE_AUDIT_SURVEY_ID))
.orderBy(surveySection.index, surveyQuestion.index)
.as("orderedQuestions");
console.log(
await tx
.select({ id: orderedQuestions.survey_question.id })
.from(orderedQuestions)
.toSQL()
);Generates the following ambiguous sql:
'select "id" from (select "survey_question"."id", "survey_question"."survey_section_id", "survey_question"."index", "survey_question"."title", "survey_question"."description", "survey_question"."short_name", "survey_question"."type", "survey_question"."survey_product_category_id", "survey_question"."survey_exposure_id", "survey_question"."survey_question_text_option_id", "survey_question"."survey_question_answer_set_id", "survey_question"."created_by_id", "survey_question"."created_at", "survey_question"."updated_at", "survey_section"."id", "survey_section"."survey_id", "survey_section"."index", "survey_section"."name", "survey_section"."created_by_id", "survey_section"."created_at", "survey_section"."updated_at" from "survey_question" left join "survey_section" on "survey_section"."id" = "survey_question"."survey_section_id" where "survey_section"."survey_id" = $1 order by "survey_section"."index", "survey_question"."index") "orderedQuestions"''select "id" from (select "survey_question"."id", "survey_question"."survey_section_id", "survey_question"."index", "survey_question"."title", "survey_question"."description", "survey_question"."short_name", "survey_question"."type", "survey_question"."survey_product_category_id", "survey_question"."survey_exposure_id", "survey_question"."survey_question_text_option_id", "survey_question"."survey_question_answer_set_id", "survey_question"."created_by_id", "survey_question"."created_at", "survey_question"."updated_at", "survey_section"."id", "survey_section"."survey_id", "survey_section"."index", "survey_section"."name", "survey_section"."created_by_id", "survey_section"."created_at", "survey_section"."updated_at" from "survey_question" left join "survey_section" on "survey_section"."id" = "survey_question"."survey_section_id" where "survey_section"."survey_id" = $1 order by "survey_section"."index", "survey_question"."index") "orderedQuestions"'