i use distinct to eliminate duplicate fields.
Query:
SELECT DISTINCT
userId1, userId2, message, sentDate, ad1, avatar1, ad2, avatar2
FROM
(SELECT m.id, m.userId1, m.userId2, m.message, m.sentDate, m.readDate,
u1.id id1, u1.ad ad1, u1.avatar avatar1, u2.id id2, u2.ad ad2,
u2.avatar avatar2
FROM (messages m inner join users u1 on m.userId1 = u1.id)
inner join users u2 on m.userId2 = u2.id
where (userId1 = 8 or userId2 = 8)
order by sentDate desc
) as q
if one field equal to userId1 = 7 and userId2 = 8 don't take userId1 = 8 and userId2 = 7. How can i say this to sql?