我有这张桌子
UserId Messagge Date
1 Hi 2013-01-01
1 Bye 2013-02-01
3 Hi 2013-01-01
2 Hi2 2013-01-02
2 Hi3 2013-01-02
我需要按照用户编写的顺序列出用户的消息。但SQL查询:
select DISTINCT t.UserId from (select UserId,Date from Messages) as t
返回:
1
2
3
我无法按日期订购子查询,无论如何,如果我尝试对查询进行区分,则始终会对用户的ID进行排序。
我需要一个返回的SQL查询:
1 3 2
用户编写的顺序
答案 0 :(得分:2)
select userid
from (
select userid,
min(date) as min_date
from messages
group by userid
) t
order by min_date
SQLFiddle示例:http://sqlfiddle.com/#!3/015ff/1
顺便说一下:date
是一个可怕的名字。首先是因为它也是一个保留关键字,其次是因为它没有记录它的意图。是“发布日期”,“编辑日期”,“删除日期”,“发布日期”还是完全不同的东西?