消除具有明显区别的字段

时间:2018-10-30 21:27:55

标签: mysql sql

我使用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

response

如果一个字段等于userId1 = 7和userId2 = 8,则不采用userId1 = 8和userId2 = 7。

1 个答案:

答案 0 :(得分:0)

使用SQL select only rows with max value on a column中的一种技术来获取组中具有最高sentDate的行。使用

GROUP BY GREATEST(userid1, userid2), LEAST(userid1, userid2)

作为分组。