sql - 带查找功能的 Rails SQL 查询

标签 sql ruby-on-rails find

我希望使用 find 在 rails Controller 中编写此 SQL 查询:

select id,name from questions
where id not in (select question_id from levels_questions where level_id=15)

我将如何做到这一点?我正在使用 Rails 框架和 MySQL。
提前致谢。

最佳答案

Question.find_all_by_sql('select id,name from questions where id not in (select question_id from levels_questions where level_id=15)')

这无疑是非 ActiveRecord-ish,但我发现使用 AR 宏时,诸如此类的复杂查询往往不太清晰/效率较低。如果您已经构建了 SQL,您不妨使用它。

一些建议:将此 find 调用封装在 Question 类中的方法中以隐藏 Controller / View 中的详细信息,并考虑其他可能更有效的 SQL 结构(例如,Levels_questions.question_id 为 null 的 OUTER JOIN)

关于sql - 带查找功能的 Rails SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/985211/

相关文章:

mysql - 在 MySQL 中按年龄范围分组

php - 将上传图像的路径保存在数据库中

php - 如何在选择列表中显示类别、子类别、子子类别 - php/mysql?

ruby-on-rails - 是否有用于记录用户事件的 SaaS?

ruby-on-rails - 在 rails 3 和 rspec 2 中,如何测试调用 render() 所使用的布局?

linux - 找到一个.txt文件并写入其中

sql - 如何计算/增加 MS SQL 选择中表列的当前出现次数

ruby-on-rails - 加载错误 : cannot load such file -- bundler/setup

bash - 使用 find 遍历非常大的目录树

c++ - 在自定义对象上查找