3

メンバーテーブルがあるとすると:

id   membername
-------------------
1    Fred
2    Dave
3    Jenny

とジョブテーブル

id   member_id   status
1    1           Closed
2    2           Pending
3    2           Open
4    3           Pending
5    3           Pending

メンバーごとの保留中のジョブの総数を出力したい。

したがって、上記のデータを使用して、次のようにします。

membername  count
Dave        1
Jenny       2

グループメソッドを使用してカウントを取得できます。例:

Job.where("status = ?", "Pending").group(:member_id).count

しかし、これは名前を返しません。member_idとカウントのハッシュ。どういうわけか、この結果をメンバーテーブルに結合する必要があると思います。もちろん、生のSQLでこれを行うことはできますが、このデータを取得するためのより適切な方法があるかどうか疑問に思っていました。

4

1 に答える 1

5
Job.where("status = ?", "Pending").joins(:member).group("member.name").count
于 2012-05-20T12:49:49.547 に答える