場合によっては、目的を達成する唯一の方法は、非常に醜く凶悪なSQLを作成することであり、複数のクエリを実行するという選択肢が魅力的になります:-)
1つのクエリを実行して友達のリストを取得し、友達ごとに最新の3枚の写真を取得します。次のようなもの:
friend_list = sqlexec "select user2_id from relations where user1_id = "
+ current_user_id
photolist = []
for friend in friend_list:
photolist += sqlexec "select user_id, id, date_uploaded from photos"
+ " where user_id = "
+ friend.get("user2_id")
+ " order by date_uploaded desc fetch first 3 rows only"
# Now do something with photolist
あなたは持っていません 凶悪なパターンに一致する正規表現が1つに制限されている以上に、1つのクエリとして実行します。確かに「賢い」ことは素晴らしいことですが、それが必要になることはめったにありません。私は実用的なアプローチを好みます。