2015-04-02 45 views
0

我有一個表Info(:name,:friend_id)和另一個表Friends(:id,:network)。屬性:網絡可以是Facebook/Gmail/Linkedin。我想從所有服務中統計所有朋友,比如來自FB,Gmail和Linkedin的朋友數量。我有一個friends_list在Rails中查詢從數據庫中獲取

friends_list = Info.where(:name => my_name) 

我不想迭代friends_list並找到每個friend_id正常的方式。是否有單行查詢可以給我來自Facebook的所有朋友的數量?

+0

'Info.joins(:friend).where(:name => my_name,network:'Facebook')。count' – cristian 2015-04-02 07:49:01

回答

0

您可以使用#count#group,查詢可能需要稍微調整,但通常可能。

friends_counts = Friends.joins(:info).group(:network).where(infos: {name: my_name}).count 

這應該返回散列數組,散列鍵是網絡ID,散列值是該網絡中的朋友數。

+0

這不是我所問的。請仔細閱讀問題。 – user99785 2015-04-02 07:26:04

+0

所以你想分開計數? – 2015-04-02 07:26:33

相關問題