Get sequel generated sql 生成不带反引号的字段名
Get sequel generated sql to generate field names without backticks
我在 SQL 中编写了以下查询:
Select *
From npt_articles
Inner Join npt_authors
Inner Join users
Inner Join npt_teams
Where npt_teams.id In (1)
和以下 sql 由 sequel gem 生成:
SELECT *
FROM `npt_articles`
INNER JOIN `npt_authors`
INNER JOIN `users`
INNER JOIN `npt_teams`
WHERE ('npt_teams.id' IN (1))
第一个 returns 结果,第二个没有,如果我删除反引号,那么第二个会生成与第一个相同的结果。
这是生成第二个的代码sql:
team_articles = user.npt_teams.to_a.inject({}) {|arts,team|
arts.merge({ team.name =>
NptArticle.join(:npt_authors).join(:users).join(:npt_teams).where('npt_teams.id' => [team.id]).to_a.uniq})
}
如何生成不带反引号的查询?
你应该尝试这样的事情:
.where(:npt_teams__id => [team.id])
我在 SQL 中编写了以下查询:
Select *
From npt_articles
Inner Join npt_authors
Inner Join users
Inner Join npt_teams
Where npt_teams.id In (1)
和以下 sql 由 sequel gem 生成:
SELECT *
FROM `npt_articles`
INNER JOIN `npt_authors`
INNER JOIN `users`
INNER JOIN `npt_teams`
WHERE ('npt_teams.id' IN (1))
第一个 returns 结果,第二个没有,如果我删除反引号,那么第二个会生成与第一个相同的结果。
这是生成第二个的代码sql:
team_articles = user.npt_teams.to_a.inject({}) {|arts,team|
arts.merge({ team.name =>
NptArticle.join(:npt_authors).join(:users).join(:npt_teams).where('npt_teams.id' => [team.id]).to_a.uniq})
}
如何生成不带反引号的查询?
你应该尝试这样的事情:
.where(:npt_teams__id => [team.id])