sql >> Database teknologi >  >> RDS >> Mysql

SQL Seneste billeder fra kontakter (grupperet efter kontakt)

Nogle gange er den eneste måde at opnå en ende på at skabe et stykke SQL så grimt og afskyeligt, at alternativet med at lave flere forespørgsler bliver attraktivt :-)

Jeg ville bare lave en forespørgsel for at få en liste over dine venner, og derefter få de tre seneste billeder for hver ven. Noget som:

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 ikke at gøre det som én forespørgsel mere end du er begrænset til et regulært udtryk for at matche et afskyeligt mønster. Selvfølgelig ville det være rart at være "klog", men det er sjældent nødvendigt. Jeg foretrækker en pragmatisk tilgang.




  1. MySQL - Trigger for at opdatere kolonne i en anden tabel efter indsættelse, hvor den opfylder andre værdier

  2. Kan du have if-then-else logik i SQL?

  3. PostgreSQL:FEJL:42601:en kolonnedefinitionsliste er påkrævet for funktioner, der returnerer post

  4. MySQL 5.7.12-import kan ikke oprette en JSON-værdi fra en streng med CHARACTER SET 'binary'