mysql - 获取续集生成的sql以生成不带反引号的字段名称

标签 mysql sql ruby sequel ruby-1.8.7

我用 SQL 编写了以下查询:

Select     * 
From       npt_articles 
Inner Join npt_authors 
Inner Join users 
Inner Join npt_teams 
Where      npt_teams.id In (1)

以及续集 gem 生成的以下 sql:

SELECT     * 
FROM       `npt_articles` 
INNER JOIN `npt_authors` 
INNER JOIN `users` 
INNER JOIN `npt_teams` 
WHERE      ('npt_teams.id' IN (1))

第一个返回结果,第二个不返回,如果我删除反引号,那么第二个将生成与第一个相同的结果。

这是生成第二个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])

关于mysql - 获取续集生成的sql以生成不带反引号的字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37881934/

相关文章:

php - 计算 OOP PHP 中返回的行数

c# - 使用参数化参数 WITH sqlcommandbuilder [无数据适配器]

mysql - 如何使用 mySQL 查询链接 4 个表

ruby-on-rails - 显示记录计数 - Ruby on Rails - Ajax

mysql - mysql查询真的很奇怪的错误

mysql - 从 mysql-client 即时运行的慢查询

mysql - 在 MySQL 中获取精确重复的行

sql - 我可以避免在这里使用游标吗?

ruby-on-rails - Geocoder - 语言设置为英语,但仍然得到波兰语的一些结果

ruby - Elixir 中的 ruby​​ & 运算符是什么?