Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL Najnowsze zdjęcia z kontaktów (pogrupowane według kontaktów)

Czasami jedynym sposobem na osiągnięcie celu jest stworzenie fragmentu SQL tak brzydkiego i ohydnego, że alternatywa wykonywania wielu zapytań staje się atrakcyjna :-)

Zrobiłbym tylko jedno zapytanie, aby uzyskać listę twoich znajomych, a następnie, dla każdego przyjaciela, zdobądź trzy najnowsze zdjęcia. Coś takiego:

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

Nie masz nie zrobić to jako jedno zapytanie bardziej niż jesteś ograniczony do jednego wyrażenia regularnego do dopasowania haniebnego wzorca. Jasne, fajnie byłoby być „sprytnym”, ale rzadko jest to konieczne. Wolę podejście pragmatyczne.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jeśli używam operatora IN do filtrowania wartości NULL i spacji, to nie działa Dlaczego?

  2. Jak zmienić silnik przechowywania tabel z MyISAM na InnoDB?

  3. Funkcja MySQL LEAST() – Znajdź najmniejszy argument na liście argumentów

  4. Importuj pliki .frm i .opt do MySQL

  5. Jak napisaćnajwiększe n na zapytanie typu grupy, ale z dodatkowymi warunkami?