У меня есть конечная точка API REST, которая возвращает набор записей внутреннего соединения, определенный следующим образом:
const getByRecipeId = recipeId => {
return knex("recipe_details")
.innerJoin("jobs", "jobs.id", recipe_details.id_job")
.where("id_recipe", recipeId)
}
При отладке у меня есть следующий оператор sql (Postgres):
select
*
from
"recipe_details"
inner join "jobs" on
"jobs"."id" = "recipe_details"."id_job"
where
"id_recipe" = 1
Возвращает этот набор записей
id|id_recipe|seq|id_job|qty_time|qty_job|id|code|description|
--|---------|---|------|--------|-------|--|----|-----------|
1| 1| 10| 1| 10| 24| 1|job1|job descr1 |
3| 1| 30| 2| 15| 24| 2|job2|job descr2 |
13| 1| 50| 3| 50| 15| 3|job3|job descr3 |
2| 1| 20| 3| 5| 30| 3|job3|job descr3 |
4| 1| 40| 3| 25| 24| 3|job3|job descr3 |
Как видите, есть два поля id
, одно для таблицы recipe_details
и одно для таблицы jobs
.
Проблема в том, что объект javascript, возвращаемый конечной точкой, имеет только одно свойство id
, которое не относится к основной таблице, но перезаписывается последним полем id, возвращаемым оператором SQL.
Как я могу избежать этого поведения? Спасибо за вашу помощь