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

MySQL:come mostrare l'ultimo argomento per thread

Ok, sono arrivato io stesso con la soluzione. Ho usato una sottoquery dipendente per risolvere. Questo è ciò che ho nel risultato:

        SELECT
             item_discuss_threads.item_discuss_thread_id
             , item_discuss_threads.item_discuss_thread_datetime
             , item_discuss_threads.item_discuss_thread_title
             , latest_posts.item_discuss_post_title
             , latest_posts.item_discuss_post_datetime
             , COUNT(item_discuss_posts.item_discuss_post_id) AS nb_posts
        FROM
             item_discuss_threads
        INNER JOIN item_discuss_posts
             ON item_discuss_threads.item_discuss_thread_id=item_discuss_posts.item_discuss_thread_id
        INNER JOIN item_discuss_posts AS latest_posts
             ON latest_posts.item_discuss_thread_id=item_discuss_threads.item_discuss_thread_id
        WHERE
             (
                  SELECT
                        item_discuss_post_id
                  FROM
                        item_discuss_posts AS p
                  WHERE
                        p.item_discuss_thread_id=item_discuss_posts.item_discuss_thread_id
                  ORDER BY
                        item_discuss_post_datetime DESC
                  LIMIT
                       1
             )=latest_posts.item_discuss_post_id
        GROUP BY
             item_discuss_threads.item_discuss_thread_id
        ORDER BY
            latest_posts.item_discuss_post_datetime DESC