Понякога единственият начин да постигнете край е да създадете парче SQL, толкова грозно и отвратително, че алтернативата за извършване на множество заявки става привлекателна :-)
Бих направил само едно запитване, за да получа списък с вашите приятели, след което за всеки приятел да получа трите най-скорошни снимки. Нещо като:
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
Вие нямате да го направите като една заявка повече, отколкото сте ограничени до един регулярен израз за съвпадение на отвратителен модел. Разбира се, би било хубаво да си "умен", но рядко се налага. Предпочитам прагматичен подход.