给定一个名为 Messages 的数据库表,其中包含以下列:-
MessageID, FromUser, ToUser, Message, DateTime
我想编写一个 SQL 查询,它为“FromUser”列选择不同的值,但我也想要按 DateTime 排序的值。
本质上,一个查询,例如:
SELECT * FROM Messages WHERE ToUser='1' ORDER BY DateTime DESC
然后,使用以下内容选择不同的 FromUser:
SELECT DISTINCT FromUser FROM Messages WHERE ToUser='1'
同时,维护上一个查询的排序。
我尝试使用嵌套查询并遇到问题,因为您无法在内部查询中使用 ORDER BY。
本质上,我希望查询的语法表示(这是无效的,但是......):
SELECT DISTINCT FromUser FROM Messages WHERE ToUser=1 AND FromUser IN
(SELECT * FROM Messages WHERE ToUser=1 ORDER BY DateTime DESC)