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ść
NewestPostTimei dopiero na tej podstawie sortować. Czy jest to lepsze wyjście?