【发布时间】:2014-11-03 21:44:57
【问题描述】:
select DISTINCT first_name, last_name, picture, last_active, id_participante1, id_participante2, id_user, [message], dataHora from chat_b_users inner join utilizadores
on chat_b_users.id_participante2 = utilizadores.id_user
left join chat_talks on chat_b_users.id_chat = chat_talks.id_chat
where id_participante1 = 1
union all
select DISTINCT first_name, last_name, picture, last_active, id_participante1, id_participante2, id_user, [message], dataHora from chat_b_users inner join utilizadores
on chat_b_users.id_participante1 = utilizadores.id_user
left join chat_talks on chat_b_users.id_chat = chat_talks.id_chat
where id_participante2 = 1 order by last_active DESC
如何选择不同的值?
我需要返回所有这些数据,即使是空值,但是对于每个用户,我该怎么做?
结果:
正如你在图片中看到的,我有两个来自同一个用户的聊天,我只想要一个。
【问题讨论】:
-
你试过
SELECT DISTINCT吗? -
是的,我试过了,结果一样
-
我明白了,
DISTINCT不起作用,因为组合不同。您的时间戳使它们没有区别。试试MAX和last_active看看是否有帮助。看看this answer -
不工作,你想让我把它放在查询的什么地方?
-
尝试 EXCEPT 而不是 UNION
标签: sql sql-server