Ruby语法实现此SQL查询

时间:2012-09-18 06:52:12

标签: sql ruby-on-rails

我正在开发一个RoR Webapp,它是一个仪表板。为此,我需要在执行结果的COUNT之前执行2个表的INNER JOIN

如何使用Active Record在Ruby语法中编写此内容

SELECT COUNT(*) FROM feedbacks 
  INNER JOIN feedback_categories ON feedbacks.id=feedback_categories.feedback_id 
  WHERE feedback_categories.category_id=1

这两个表是反馈和feedback_categories。任何指针都会有所帮助。

3 个答案:

答案 0 :(得分:1)

您可以使用联接:

Feedback.joins(:feedback_category).where(:feedback_categories => {:category_id => 1}).count

请注意,根据您的关系,join和where子句中的feedback_category可能会有不同的复数形式。在它总是多元化的地方,在连接中它可以是单数。

答案 1 :(得分:0)

答案 2 :(得分:0)

假设您有一个名为Feedback的模型,请使用:

Feedback.count :conditions => "feedback_categories.category_id = 1",
               :joins => "INNER JOIN feedback_categories ON feedbacks.id=feedback_categories.feedback_id"