Mam dwie tabele w relacji jeden do wielu: threads
i posts
. Każdy wątek w threads
ma swój numer ThreadID
. Każdy post w posts
ma swój numer PostID
, przypisany postowi numer ThreadID
(kilka postów może mieć ten sam TID) oraz czas uniksowy Time
.
Chcę pobrać listę wszystkich elementów z threads
posortowanych wg. największego Time
dla postów przypisanych do danego wątku. Inaczej:
Mój pomysł na sortowanie według Time:
SELECT * FROM threads ORDER BY (SELECT Time FROM posts WHERE ThreadID='id' ORDER BY Time DESC LIMIT 1) DESC
I dwa pytania:
- W jaki sposób umieścić poprawne ID wątku w
ThreadID='id'
? Czy jest to w ogóle możliwe? - Czy taki sposób na posortowanie w ogóle zadziała? Jeśli nie, czy istnieje inna opcja? Myślałem o tym, by najpierw dla każdego wątku ustalić wartość
NewestPostTime
i dopiero na tej podstawie sortować. Czy jest to lepsze wyjście?