内最新的输入所以我有这个表名为Mysql的选择每组
maid_processing
id code confirm_arrival category_id arrived
5 A1 2014-01-02 NULL 1
4 B2 2014-01-02 NULL 1
3 A1 2014-01-01 NULL 1
2 B2 2014-01-01 NULL 1
1 B2 2014-01-01 NULL 0
所以你可以看到,代码重复,但是其他列可能会有所不同。 我想要实现的是,我想
选择其中confirm_arrival字段满足日期的给定范围内的所有代码和到达= 1,并且由于A1和B2将被重复,因为两次的例子满足条件 然后我们可以将那些相同的代码分组在一起,因此,形成了2个组,A1和B2
所以我最终想要的是在这两个组中,我只想要每个组中的输入行与id号=最大(因此最新)。
The desired result will be
id code confirm_arrival
5 A1 2014-01-02
4 B2 2014-01-02
我至今只会返回最早(ID =每个组中最小的),请参阅下面
SELECT *
FROM
(SELECT *
FROM maid_processing mp
LEFT
JOIN
(SELECT id catid
, archived
FROM category
) AS cat
ON cat.catid = maid_mp.category_id
WHERE arrived = 1
AND (archived IS NULL OR archived = 0)
AND confirm_arrival BETWEEN :from_date AND :to_date
ORDER
BY confirm_arrival DESC
) AS inv
GROUP
BY code;
如果您喜欢,请考虑遵循以下简单的两步操作步骤:1.如果您尚未这样做,请提供适当的DDL(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。另外,使归档不可为空并将其设置为默认值0.哦,并且不需要日期用引号括起来? – Strawberry 2015-02-10 12:19:52
它实际上是在model() - > findAllBySql使用Yii,即时通讯不知道这里的语法是否重要 – 2015-02-10 13:01:42
可能重复[获取每组分组SQL结果的最大值记录](http://stackoverflow.com/questions/12102200/get-records-with-max-value-for-each-group-of-grouped-sql-results)和[为每组分组的SQL结果获取最大值的记录](http://stackoverflow.com/questions/7745609/sql-select-only-rows-with-max-value-on-a-column) – 2015-02-10 13:02:41