具体来说,我试图弄清楚是否有可能生成 SQL 来执行我想要输入 Ruby-on-Rails 的 find_by_sql 方法的操作。
想象有用户,他们通过连接表 Friendships 周期性地连接到其他用户。每个用户都可以创建评论。
我想要一个 SQL 查询来返回给定用户的任何朋友创建的最新 100 条评论,以便我可以将它们全部显示在一个方便的位置供用户查看。
这很棘手,因为基本上我希望通过他们的作者的外键是否包含在从用户朋友的主键派生的一组键中来过滤评论。
编辑:澄清设置。我不确定如何编写模式定义,所以我将用 Rails 来描述它。
class User
has_many :friends, :through => :friendships
has_many :comments
end
class Friendship
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
end
def Comment
has_one :User
end