內最新的輸入所以我有這個表名爲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