2016-11-11 103 views
0

我有一個名爲表worksheets_items類似這樣的設置MySQL的選擇每個羣組的第一個條目PER

table "worksheet_items" 
ID DATE_ADDED COUNTY_ID NAME COMPLETED 
1  2016/03/15 11   "ZA" 0 
2  2016/03/15 12   "FB" 1 
3  2016/03/15 12   "GC" 0 
4  2016/03/15 13   "GD" 1 
5  2016/03/15 11   "EE" 1 
6  2016/03/15 13   "TF" 1 
7  2016/03/16 11   "YG" 0 
8  2016/03/16 11   "WH" 0 
9  2016/03/16 12   "YI" 1 
10 2016/03/16 13   "QJ" 0 
11 2016/03/16 13   "RK" 1 
12 2016/03/16 12   "UL" 0 
13 2016/03/16 11   "PM" 1 
所有我想要做的就是在一排

(不要緊,如果它是首先或不是)每個郡每個日期。我的目標是顯示了已完成= 0

因此,在這種情況下,我想用

ID DATE_ADDED COUNTY_ID NAME COMPLETED 
1  2016/3/15  11   "ZA" 0 
3  2016/3/15  12   "GC" 0 
7  2016/3/16  11   "YG" 0 
12 2016/3/16  12   "UL" 0 
10 2016/3/16  13   "QJ" 0 

我使用GROUP BY嘗試,但落得任何條目日期下的日期和每個縣我在MySQL方面的專業知識是有限的,所以最終只是把錯誤拋出wazoo。任何幫助都將不勝感激!

+1

你不只是想要WHERE完成= 0嗎? – Jeff

+0

不,不幸的是,我需要一個**每** **縣**每**日期,其中完成= 0. –

回答

-1

獲取一個每個日期和縣的ID(例如最大值) imum ID)。然後使用找到的ID訪問記錄。

select * 
from worksheet_items 
where (date_added, county_id, id) in 
(
    select date_added, county_id, max(id) 
    from worksheet_items 
    where completed = 0 
    group by date_added, county_id 
) 
order by id; 
+0

完美!非常感謝! –

0

我覺得你並不需要GROUP_BY在所有

你需要的是通過DATE_ADDED訂購記錄和county_id

SELECT * FROM worksheet_items 
WHERE completed=0 
ORDER BY date_added, county_id