使用联接查询中的数据

约翰

我是一个控制器,我有一个带有联接的查询以防止1 + n问题:

@questions = Question.joins(:answers).where("answers.user_id = ?", user_id)

现在,我想迭代视图中的问题并使用它们:

- @questions.each do |question|
  - answer = question.answers.first

但是结果是答案表被查询了两次。如何从第一个联接查询中获得答案,所以我不需要第二个查询?

大卫·奥尔德里奇(David Aldridge)

您是否真的只想返回用户给出的答案,还是您也想要所有其他用户的答案?

假设是前者,另一种方法可能是:

@questions = @user.answers.eager_load(:question).group_by{|answer| answer.question}

这将为您提供一个包含答案和问题的查询,然后group_by将返回一个哈希,其中的键是问题,值是用户答案的​​数组。

如果您希望所有用户都提供所有答案,则需要与User建立关联,从而为您提供他们已经回答的问题(has_many:questions_answered,通过:: answers,class_name:“ question”),然后:

@questions = @user.questions_answered.include(:answers)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在mysql中使用联接查询更新数据

来自分类Dev

SQL查询中不使用内部联接

来自分类Dev

使用mysql查询的左联接中的问题

来自分类Dev

使用基于ID(CDID)的SQL联接查询从3个表中获取数据

来自分类Dev

使用多个联接将同一查询中的数据分组

来自分类Dev

在Reporsitory中使用@Query取消在spring数据jpa中形成正确的联接查询

来自分类Dev

Hibernate查询:从联接表中获取Class的数据

来自分类Dev

如何通过联接查询所有Om Next中的数据?

来自分类Dev

通过联接DB2中的表来查询数据

来自分类Dev

联接以在查询生成器laravel中显示特殊数据

来自分类Dev

查询联接中的大数据集(15+百万行)

来自分类Dev

联接数据中的Splunk查询参考字段

来自分类Dev

通过联接DB2中的表来查询数据

来自分类Dev

使用联接从多个表中获取数据

来自分类Dev

使用联接从多个表中获取数据

来自分类Dev

使用联接从表中检索数据

来自分类Dev

在Oracle中使用联接选择查询生成动态数据

来自分类Dev

Pyspark子选择/子查询使用数据框联接

来自分类Dev

Sql Not IN查询使用联接

来自分类Dev

使用联接解决查询?

来自分类Dev

如何使用SQL查询联接数据库中具有相似名称的一组表?

来自分类Dev

使用联接操作在查询中显示重复的行

来自分类Dev

使用选择查询从联接表中获取值

来自分类Dev

如何在Rails中对4个表使用联接查询

来自分类Dev

如何使用Rails活动记录查询中包含的联接?

来自分类Dev

使用组和联接的C#中的LINQ查询

来自分类Dev

使用lambda表达式查询实体中的联接

来自分类Dev

计算使用联接的MYSQL查询的子组中的记录数

来自分类Dev

使用组和联接的C#中的LINQ查询

Related 相关文章

热门标签

归档