我需要做以下事情:
根据您喜欢的类别查找其他类别的人。我有一个喜欢的表,它连接到用户和类别。
我需要进行有效的查询,以找出喜欢给定类别的其他类别。
对此的任何想法将不胜感激。提前致谢。
答案 0 :(得分:0)
您希望找到拥有当前用户拥有的所有类别的所有用户,然后收集其他人拥有的所有类别,但不包括当前用户拥有的类别。
这样的事情怎么样:
@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)]