![](/img/trans.png)
[英]PHP MySQL query select DISTINCT but display Limited Rows order by date
[英]problem with result order on distinct select query
我有这样的桌子
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数组中并排序,然后删除重复项
尝试这个
select group_id,max(date) as SortDate
from table
group by group_id
order by SortDate
如果我了解您的问题,听起来您需要先按日期分组。
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.