我有一个包含多个JOIN的查询。
目前,我收到了所有表格中所有列的结果。并且有些列具有相同的名称,因为它是我的数据库中的方式。如何选择要返回的列并在结果集中调整其名称?
我试过了:
result = MyModel1.join(:table2, id: :table2_id)
if condition1
result = result.join(.....).where(.....)
end
if condition2
result = result.join(.....).where(.....)
end
# and so on....
result
如果我这样做:
result.select([Sequel[:model1][:column1], Sequel[:model2][:column2]])
在我将其转换为json后,我最终得到了这个:
[{"row":["column1_value1","column1_value11"]},{"row":["column1_value2","column1_value22"]},{"row":["column1_value3","column1_value33"]}]
"行&#34 ;?如何摆脱它?如何添加列的名称并更改该json响应的结构,使其看起来正确?
我想要这样的事情:
[
{"column1": "column1_value1", "column2" "column1_value11"},
{"column1": "column1_value2", "column2" "column1_value22"},
{"column1": "column1_value3", "column2" "column1_value33"}
]
答案 0 :(得分:0)
如果结果相对较小,您可以处理输出。
set
后者可能在一个循环中完成,我展示了链式地图以澄清所需的步骤。
答案 1 :(得分:0)
您可以使用as
method:
Sequel.select(
Sequel[:table1][:column1].as(:alias1),
Sequel[:table2][:column2].as(:alias2)
)