有时,实现一个目的的唯一方法是创建一个如此丑陋和令人发指的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
你不
有
要将它作为一个查询来执行,就要比只使用一个正则表达式来匹配一个糟糕的模式还要简单。当然,“聪明”是件好事,但很少有必要。我更喜欢务实的方法。