Attendance.joins(:user).group(:email, :name).count
上面的查询为我提供了下面的结果。 “用户1”有2次出席,“用户2”有6次出席,另外我可以访问用户名和电子邮件。ActiveRecord查询。由多个表格中的多列组成
{["[email protected]", "User 1"]=>2, ["[email protected]", "User 2"]=>6]}
这是伟大的,除非我真的很喜欢User.id也包括在内。我无法按ID分组,因为每条记录都是唯一的,而不是通过电子邮件和名称进行分组。下面是我想要的:
{[1, "[email protected]", "User 1"]=>2, [2, "[email protected]", "User 2"]=>6]}
任何帮助,将不胜感激。
回答 Attendance.joins(:用户)。集团(:电子邮件,:姓名, 'attendances.user_id')算
它不应该是唯一的,除非你按'Attendence.id'? – salient
通过ID分组将会是Attendence的ID。按照我假设在该表上的user_id进行分组,会给你想要的。 – mccalljt
你将如何构造这个查询?我不断收到错误....“Attendance.joins(:user).group(:email,:name,'attendance.user_id')。count”我得到的错误是“ActiveRecord :: StatementInvalid:PG :: UndefinedTable :错误:缺少表“考勤”的FROM-clause条目“ – wipallen