Někdy je jediným způsobem, jak dosáhnout konce, vytvořit kus SQL tak ošklivého a odporného, že se alternativa provádění více dotazů stává atraktivní :-)
Udělal bych jen jeden dotaz, abych získal seznam vašich přátel, a pak pro každého přítele získal tři nejnovější fotografie. Něco jako:
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
nemáte dělat to jako jeden dotaz o nic víc, než jste omezeni na jeden regulární výraz pro shodu s odporným vzorem. Jistě by bylo hezké být „chytrý“, ale málokdy je to nutné. Preferuji pragmatický přístup.