sql >> Databasteknik >  >> RDS >> Mysql

SQL Senaste bilder från kontakter (grupperade efter kontakt)

Ibland är det enda sättet att nå ett slut att skapa en bit SQL så ful och avskyvärd att alternativet att göra flera frågor blir attraktivt :-)

Jag skulle bara göra en fråga för att få en lista över dina vänner och sedan, för varje vän, få de tre senaste bilderna. Något i stil med:

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

Du har inte att göra det som en fråga mer än du är begränsad till ett reguljärt uttryck för att matcha ett avskyvärt mönster. Visst skulle det vara trevligt att vara "smart" men det är sällan nödvändigt. Jag föredrar ett pragmatiskt förhållningssätt.




  1. Hur man lagrar frågeresultat i variabel med mysql

  2. Är SET CHARACTER SET utf8 nödvändigt?

  3. Nested Loop Join in Oracle 11g

  4. Statisk vs dynamisk sql