IF you require ALL members with or without posts, then revers the table relationships so that the posts are left joined to members:
SELECT *
FROM members
INNER JOIN posts ON members.user_id = posts.user_id
ORDER BY members.user_id DESC, posts.id ASC ## I am guessing some column names
IF you have members with no posts AND posts with no members THEN you want the equivalent of a "full outer join" and this does require a UNION... although I seriously doubt the need for this here I include it for completeness:
SELECT * ## MUST choose the columns!!
FROM (
SELECT posts.*, members.* ## MUST choose the columns!!
FROM members
LEFT JOIN posts ON members.user_id = posts.user_id
UNION
SELECT posts.*, members.* ## MUST choose the columns!!
FROM posts
LEFT JOIN members ON posts.user_id = members.user_id
) d
ORDER BY user_id DESC, posts_id ASC ## I am guessing some column names
----
If you only require posts which have an associated user_id then I suggest you try this:
SELECT *
FROM posts
INNER JOIN members ON posts.user_id = members.user_id
ORDER BY members.user_id DESC, posts.id ASC ## I am guessing some column names
If you do need posts without a user_id then suggest you try this:
SELECT *
FROM posts
LEFT JOIN members ON posts.user_id = members.user_id
ORDER BY ISNULL(members.user_id) ASC, members.user_id DESC
The second part of your initial query will not add more rows to the final outcome. Consider the following test:
CREATE TABLE members
(`user_id` int);
INSERT INTO members
(`user_id`)
VALUES
(1);
CREATE TABLE posts
(`id` int, `user_id` int);
INSERT INTO posts
(`id`, `user_id`)
VALUES
(1, 1),
(2, NULL),
(3, NULL);
SELECT * FROM posts
LEFT JOIN members ON posts.user_id = members.user_id;
id | user_id | user_id
-: | ------: | ------:
1 | 1 | 1
2 | null | null
3 | null | null
SELECT * FROM posts
RIGHT JOIN members ON posts.user_id = members.user_id
WHERE posts.user_id IS NOT NULL;
id | user_id | user_id
-: | ------: | ------:
1 | 1 | 1
SELECT *
FROM posts
LEFT JOIN members ON posts.user_id = members.user_id
ORDER BY ISNULL(members.user_id) ASC, members.user_id DESC;
id | user_id | user_id
-: | ------: | ------:
1 | 1 | 1
2 | null | null
3 | null | null
dbfiddle here