关于MySQL group by的问题 财富值77

2016-10-12 11:26发布

表字段及数据:
id amount user_id create_time
1 100 1 2016-10-11 10:59:33
2 3000 2 2016-10-10 10:59:54
3 3256 1 2016-10-09 11:00:16
4 1546 1 2016-10-08 11:00:38

我想取每个user的第一条记录,
SQL:select * from test group by user_id.

结果:
id amount user_id create_time
1 100 1 2016-10-11 10:59:33
2 3000 2 2016-10-10 10:59:54

然后我发现如果根据时间来排序,无论是顺序还是逆序他都是这个结果,然后我猜想这个结果是不是根据id的大小来的,结果我改了id也是一样,然后我猜想group by 结果是根据记录添加顺序来决定的,当group by的字段出现重复时,只会取第一条记录,不知道这样对不对,求解答?

7条回答

说错是因为 按sql标准, 如果sql里面有分组, 只有分组列才是有效的数据.
select * from test group by user_id. 这行表示, 只有user_id这一列才是真数据, 别的列是假的, 即使选出来, 也不能用.

一周热门 更多>