我使用distinct来消除重复的字段。
查询:
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
如果一个字段等于userId1 = 7和userId2 = 8,则不采用userId1 = 8和userId2 = 7。
答案 0 :(得分:0)
使用SQL select only rows with max value on a column中的一种技术来获取组中具有最高sentDate
的行。使用
GROUP BY GREATEST(userid1, userid2), LEAST(userid1, userid2)
作为分组。