我有一张这样的表
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数组中然后命令删除重复项
答案 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;