【发布时间】:2010-06-17 15:50:58
【问题描述】:
我需要执行以下操作:
根据您喜欢的类别查找人们喜欢的其他类别。我有一个喜欢表,它连接到用户和类别。
我需要进行有效的查询,以找出喜欢给定类别的人还喜欢哪些其他类别。
对此的任何想法将不胜感激。提前致谢。
【问题讨论】:
标签: ruby-on-rails
我需要执行以下操作:
根据您喜欢的类别查找人们喜欢的其他类别。我有一个喜欢表,它连接到用户和类别。
我需要进行有效的查询,以找出喜欢给定类别的人还喜欢哪些其他类别。
对此的任何想法将不胜感激。提前致谢。
【问题讨论】:
标签: ruby-on-rails
您希望找到拥有当前用户拥有的所有类别的所有用户,然后收集其他人拥有的所有类别,但不包括当前用户拥有的类别。
这样的事情怎么样:
@user_group = User.find(:select => "count(likes) as count, users.*",
:joins => :likes,
:conditions => {:likes => {:category_id => current_user.categories.map(&:category_id).flatten}}
:group => "#{('users.id having count = ?', current_user.categories.count)}")
@categories = Categories.find(:joins => :likes, :conditions => ['likes.user_id in ? and id not in ?', @user_group.map(&:id), current_user.categories.map(&:id)]
【讨论】: