如何避免查询结果中出现重复的字段名
How to avoid duplicate field name in query result
我正在开发一个 padrino 网络应用程序。我有两个 tables:
User
table:有 id
、name
、address
字段
Post
table: 有 id
, user_id
, content
如果我加入他们,
User.join(:posts, user_id:, :id)
他们return两个同名字段id
:
id name address id user_id content
1 jim *** 3 1 post1
我想重命名这些 id
中的每一个。我希望结果是:
u_id name address p_id user_id content
1 jim *** 3 1 post1
我在 padrino 项目中为 postgresql 数据库使用 Sequel 适配器。
在mysql查询中,会是这样的:
select u.id as u_id,
u.name,
u.address,
p.id as p_id,
p.user_id as user_id,
p.content
from users u
join posts p on u.id = p.user_id
我该怎么办?
我要的不是sql查询,而是ruby语言的代码。谢谢。
您应该使用 Dataset#select
来设置要选择的列:
User.from{users.as(:u)}.join(Sequel[:posts].as(:p), user_id: :id).
select{[u[:id].as(:u_id), u[:name], u[:address],
p[:id].as(:p_id), p[:user_id].as(:user_id), p[:content]]}
我正在开发一个 padrino 网络应用程序。我有两个 tables:
User
table:有id
、name
、address
字段Post
table: 有id
,user_id
,content
如果我加入他们,
User.join(:posts, user_id:, :id)
他们return两个同名字段id
:
id name address id user_id content
1 jim *** 3 1 post1
我想重命名这些 id
中的每一个。我希望结果是:
u_id name address p_id user_id content
1 jim *** 3 1 post1
我在 padrino 项目中为 postgresql 数据库使用 Sequel 适配器。 在mysql查询中,会是这样的:
select u.id as u_id,
u.name,
u.address,
p.id as p_id,
p.user_id as user_id,
p.content
from users u
join posts p on u.id = p.user_id
我该怎么办? 我要的不是sql查询,而是ruby语言的代码。谢谢。
您应该使用 Dataset#select
来设置要选择的列:
User.from{users.as(:u)}.join(Sequel[:posts].as(:p), user_id: :id).
select{[u[:id].as(:u_id), u[:name], u[:address],
p[:id].as(:p_id), p[:user_id].as(:user_id), p[:content]]}