sql >> Databáze >  >> RDS >> Mysql

SQL Nejnovější fotografie z kontaktů (seskupené podle kontaktů)

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.




  1. Co je AWS RDS

  2. Nepodařilo se inicializovat databázi MySQL v systému Windows 10

  3. Mysql smaže všechny příspěvky, které mají daný meta_key

  4. Rozdíl mezi příkazy SQL a klauzulí