How can I properly query this?
The name reply_id is a bit confusing.  Consider in_reply_to or parent_id.
I assume that post_id is the id for the entire thread?  Maybe it should be called thread_id?  ("Post", to me, is somewhat synonymous with "post".)

I don't think you need two tables, at least not for comments.  However, if you do have information about the thread as a whole, I recommend a separate table for that; it would have PRIMARY KEY(thread_id).

What's the problem with this?

SELECT ...
    FROM ...
    WHERE thread_id = 2
    ORDER BY id DESC;


Can have multiple replies to a single comment?  If so, you should change the question to make that clear.  It adds a level of complexity.

You seem to have a "hierarchical" tree.  But, since you have post_id, the above query should get all of the messages, approximately in chronological order.

Why have comment_id if you already have id?

Or, start over...


Information about the entire Thread is in a separate table, and identified by thread_id.
The Comments are in a second table, with PRIMARY KEY(thread_id, comment_id). comment_id can simply be an AUTO_INCREMENT.
Each comment in a "thread" has the same thread_id.
Each row has a unique comment_id.
"Replies" need to identify their parent_id.