我需要创建一个Query,用于评估父对象是否至少收到两个喜欢。如果有,则将其包含在随机查询中。
我尝试过类似的东西,但它没有用。
@attachments = Attachment.joins('LEFT OUTER JOIN users ON users.id = attachments.user_id').where("received_likes_count > ?",2).order("random()")
答案 0 :(得分:2)
这对你有用吗?我设想你的用户是父,而附件表有一个user_id,但我不完全确定你的问题的措辞。
这方面的主要技巧是使用子选择来收集id以在IN子句中使用。
@attachments = Attachment.where(
'user_id IN (
SELECT id FROM users WHERE received_likes_count > ?
)', 2
).order('random()')
答案 1 :(得分:1)
的MySQL?
@attachments = Attachment.joins(:users).where("received_likes_count > ?",2).order("rand()")