我的查询是: -
SELECT DISTINCT _to, _from FROM message;
它输出为: -
_to _from time
sam jeet 16/01/17 00:18:27.7780
jeet sam 16/01/17 00:18:26.7780
bro sis 16/01/17 00:18:20.7780
sis bro 16/01/17 00:18:23.7780
abc def 16/01/17 00:18:21.7780
它给出了正确的结果,但它没有给出我想要的东西。 我需要输出如下:
sam jeet 16/01/17 00:18:27.7780
sis bro 16/01/17 00:18:23.7780
abc def 16/01/17 00:18:21.7780
那是jeet,sam应该和sam,jeet一样,所以不应该重复。ss,兄弟。 所选择的一个应该有最新的时间
答案 0 :(得分:4)
试试这个:
SELECT CASE
WHEN _to < _from THEN _from
ELSE _to
END,
CASE
WHEN _to >= _from THEN _from
ELSE _to
END
FROM message
GROUP BY CASE
WHEN _to < _from THEN _from
ELSE _to
END,
CASE
WHEN _to >= _from THEN _from
ELSE _to
END
如果您使用MySQL,查询可以简化为:
SELECT LEAST(_to, _from),
GREATEST(_to, _from)
FROM message
GROUP BY LEAST(_to, _from),
GREATEST(_to, _from)