Con*_*orB 2 ruby postgresql activerecord ruby-on-rails
说我有两个型号Users,并Appointments在用户的has_many约会.
约会可以有两种不同的类型:typeA和typeB.
如何编写查询以按照他们的typeB 约会数量对用户进行排序?
我查看了counter_cache,但似乎只计算了关联的数量(因此在这种情况下是用户可以拥有的约会数),并且不允许计算特定类型的约会.
使用joins(INNER JOIN),您将只获得至少有一个约会关联的用户:
User.joins(:appointments)
.where(appointments: { type: 'typeB' })
.group('users.id')
.order('count(appointments.id) DESC')
Run Code Online (Sandbox Code Playgroud)
如果您使用includes(LEFT OUTER JOIN),您将获得列表'typeB'末尾没有约会的所有用户的列表.
| 归档时间: |
|
| 查看次数: |
1313 次 |
| 最近记录: |