SELECT DISTINCT will remove all ENTIRELY DUPLICATED rows. So if even ONE FIELD in your list of fields has even ONE CHARACTER difference between rows, then all rows will be returned.
Generally speaking, this means that if your SELECT list includes ID fields that are primary keys in any table except the first one, you *will* get duplicates.
Anyway, you should be able to just look carefully at the data being returned and find the (likely minor) differences yourself. If any field shows different values in different records, then you can *NOT* include that field in SELECT DISTINCT.
Comment: Often, what you want isn't really SELECT DISTINCT. Often what you really want is the first (or last or...) record in a group where you get to select the characteristics of the group. If there is only one field that differs amongst the entire group, then instead of using SELECT DISTINCT, you can use MIN() or MAX() and GROUP BY. Example:
SELECT U.name, U.email, MAX(P.postingDate) AS lastPostingDate
FROM users AS U, postings AS P
WHERE U.userid = P.userid
GROUP BY U.name, U.email
But in more complex situations, you might not even be able to do that.
I won't bore you with methods you won't need, but if you think you need somethiing more advanced/complex, ask again.