【发布时间】:2017-05-12 08:35:41
【问题描述】:
因此,在将项目从 Rails 3.2 升级到 Rails 4.2 时,不知何故,我的一个模型中的这个查询看起来像:
rows = ActiveRecord::Base.connection.execute("Select q.id,q.times_taken,avg(qr.correct)*100,q.difficulty,q.weight,sk.name,sa.name,sub.name,q.tag_list from
(select qu.id,qu.times_taken,qu.difficulty,qu.weight,group_concat(tags.name) tag_list,qu.subject_id,qu.subject_area_id
from questions qu left join taggings t on (qu.id = taggable_id) left join tags on (t.tag_id = tags.id)
where qu.id in (#{@questions_out_ids.join(',')}) and t.taggable_type='Question' group by t.taggable_id) q
left join subjects sub on (q.subject_id = sub.id) left join subject_areas sa on (q.subject_area_id = sa.id)
left join skills_subject_areas ssa on (sa.id = ssa.subject_area_id) left join skills sk on (ssa.skill_id = sk.id),
archived_question_results qr,attempts a where qr.question_id = q.id and a.id = qr.attempt_id and a.is_normalized = 1
and a.state = 'complete' group by qr.question_id order by q.id")
已开始产生以下 mysql 错误:
ERROR 1055 (42000): Expression #6 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'faces_development.sk.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
我查看了类似问题的其他答案,并且我知道我还需要在 GROUP BY 子句中包含某个表的 id 列,但由于我的查询非常复杂,所以我尝试过的选项没有多大用处。我正在使用 gem mysql2 0.3.0 建议?
【问题讨论】:
-
不,这个和rails有关。它们是相关的,但不重复。
标签: mysql ruby-on-rails