具体的には、Ruby-on-Railsのfind_by_sqlメソッドにフィードしたいことを実行するSQLを生成できるかどうかを調べようとしています。
結合テーブルFriendshipsによって他のユーザーに周期的に結合されているユーザーがいると想像してください。各ユーザーはコメントを作成することができます。
特定のユーザーの友達が作成した最新の100個のコメントをSQLクエリで返し、ユーザーが見やすい1つの場所にすべてを表示できるようにします。
基本的に、作成者の外部キーがユーザーの友達の主キーから派生したキーのセットに含まれているかどうかでコメントをフィルタリングしようとしているため、これは注意が必要です。
編集:設定を明確にします。スキーマ定義の書き方がよくわからないので、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