У меня есть запрос left outer join
, и я хотел бы вложить результат, когда выполняю запрос из метода .all
. На данный момент я могу вернуть результат только в виде плоского ha sh, но мне нужен вложенный ha sh, чтобы имя таблицы соединения было следующим уровнем в ha sh. Возможно ли это даже в Sequel?
У меня есть таблицы product
и meta
, а команда Sequel выполняется через график, поэтому столбцы имеют псевдонимы и выглядят следующим образом:
db[:product].graph(:meta, {product_id: : product_id}, {join_type: :left_outer}).all
Что раздражает в команде graph, так это то, что она будет использовать псевдонимы столбцов только в том случае, если она соответствует основной таблице. Есть ли способ убедиться, что он изменяет все столбцы, поскольку вы увидите, что столбец quantity
не имеет префикса meta_
?
Если это возможно, я полагаю, что я мог бы изменить ha sh вручную, переместив key => values
в отдельный ha sh, который вложен путем сопоставления префикса (meta_) ключей.
Это то, что в настоящее время возвращается, но я бы хотел вместо этого вложенный ha sh:
В настоящее время:
{
id: 1,
name: 'Shave',
product_id: 123,
meta_id: 1,
meta_product_id: 123,
quantity: 2
}
Что я хотел бы видеть:
{
id: 1,
name: 'Shave',
product_id: 123,
meta: {
id: 1,
product_id: 123,
quantity: 2
}
}