不同选择查询的结果顺序问题

时间:2011-09-07 16:59:04

标签: php mysql

我有一张这样的表

id name date   group_id  
 1  n1   1     1
 2  n2   1     1
 3  n4   2     2
 4  n5   2     2 

我想要写一个查询来返回group_id,没有重复按日期排序ASC

$query = " SELECT DISTINCT group_id FROM table ORDER BY date ASC";

此查询将返回2,1但此查询只是考虑每个group_id的第一行的日期来排序结果

就好像我有这样的表

id name price  date   group_id  
 1  n1   2300    1     1
 2  n2   3000    3     1
 3  n4   4000    2     2
 4  n5   2000    2     2 

第二行使用'1'作为group_id具有最大的日期,所以我应该得到1,2作为结果但查询不关心第二行的'1'group_id仍然返回2,1 它只关心每个id的第一行来排序结果

希望有一种简单的方法可以解决这个问题,我不需要做一些事情,比如把所有东西放在2d数组中然后命令删除重复项

2 个答案:

答案 0 :(得分:1)

试试这个

select group_id,max(date) as SortDate
from table
group by group_id
order by SortDate

答案 1 :(得分:0)

如果我理解你的问题,听起来你需要先按日期分组。

SELECT group_id
FROM (
SELECT
    group_id,
    min(date) as min_date
FROM table
GROUP BY group_id
) as t
ORDER BY t.min_date;