У меня есть следующие три таблицы:
drinks: id | name
ingredient: id | name
drink_ingredients: drinks.id | ingredients.id
Когда я создаю «напиток», я также предоставляю множество идентификаторов ингредиентов. Здесь отношения управляются таблицей drink_ingredients
, которая позволяет мне повторно использовать ингредиенты.
Я пытаюсь создать запрос, который будет возвращать данные, представляющие следующее:
drink { id: 0 | name: 'Coffee' | ingredients: [2, 3] }
По сути, я хотел бы извлечь идентификатор ингредиента, прикрепленный к этому напитку, и вернуть их в виде массива.
У меня сейчас
select * from "drinks" inner join "drink_ingredients" on "drinks"."id" = "drink_ingredients"."drink_id"
Мне все еще не хватает шага для извлечения данных из ingredients
, но также это возвращает:
{
"id": 0,
"owner": 18,
"name": "Coffee",
"drink_id": 0,
"ingredient_id": 2
},
{
"id": 0,
"owner": 18,
"name": "Coffee",
"drink_id": 0,
"ingredient_id": 3
},
Возможно ли правильно встраивать данные таким образом в один оператор?