2013-11-27 51 views
0

我有產生以下結果表:MYSQL - 分組和最大?

userid statusid no  name area month year dateupdated 
62  2   763  ABCD Brazil  6 2013 2013-11-26 15:28 
62  1   869  ABC  Brazil  7 2012 2013-11-26 15:10 
62  2   869  ABC  Brazil  6 2013 2013-11-26 15:28 
62  1   869  ABC  Brazil  6 2013 2013-11-26 14:50 
61  1   763  ABCD Brazil  6 2013 2013-11-26 14:50 
54  1   200  ABCDE US   12 2013 2013-11-26 21:02 
32  2   200  ABCDE US   12 2013 2013-11-26 21:03 

我希望能夠展示最新的「不」每行。我試過使用max(dateupdated),但仍顯示所有記錄。我也試過分組,但也沒有運氣。

我只需要看到由dateupdated確定的最新記錄。

任何人都可以請幫助我嗎?

+1

您需要檢索的子查詢MAX(dateudpated)的''statusid'',和使用它返回具有「no」值的完整行 – nrathaus

+0

我需要顯示每個「否」的最新行。我想通過'dateupdated'來確定最新的行。例如,'no'763有兩條記錄,我想只顯示每個'dateupdated'的最新條目 – brad115

+0

我想檢索所有記錄,但'不'相同時,只顯示' dateupdated' – brad115

回答

0

查詢:

SQLFIDDLEExample

SELECT t1.* 
FROM Table1 t1 
LEFT JOIN Table1 t2 ON t2.dateupdated > t1.dateupdated 
AND t1.no = t2.no 
WHERE t2.no IS NULL 

結果:

| USERID | STATUSID | NO | NAME | AREA | MONTH | YEAR |      DATEUPDATED | 
|--------|----------|-----|-------|--------|-------|------|---------------------------------| 
|  62 |  2 | 763 | ABCD | Brazil |  6 | 2013 | November, 26 2013 15:28:00+0000 | 
|  62 |  2 | 869 | ABC | Brazil |  6 | 2013 | November, 26 2013 15:28:00+0000 | 
|  32 |  2 | 200 | ABCDE |  US | 12 | 2013 | November, 26 2013 21:03:00+0000 | 
3

我不知道我理解你的問題,但你可以通過這樣的事情來幫助:

select * from mytable where dateupdated = (select max(dateupdated) from mytable); 

編輯:

根據您的澄清,你在這種情況下,相關子查詢需要。我沒有試過,但也許是這樣的:

select * 
    from mytable a 
where dateupdated = (select max(dateupdated) from mytable where no = a.no); 
+2

我想他也想用itrid等,但我不確定 – nrathaus

+0

如果我有這兩條記錄: 62 1 869 ABC巴西7 2012 2013-11-26 15:10 62 2 869 ABC巴西6 2013 2013-11-26 15:28 我只想按日期顯示最新條目。這就像是某種分組 – brad115

+0

謝謝,我試過了,但不幸的是仍然顯示兩個記錄,不應該最新更新的'dateupdated'記錄只 – brad115

1

或者這樣:

SELECT * 
FROM table  
ORDER BY dateupdated DESC 
LIMIT 1; 

末,每號:(這是你想要什麼?)

SELECT * 
FROM table t1 
WHERE NOT EXISTS(SELECT * FROM table t2 
       WHERE t1.no = t2.no 
       AND t2.dateupdated > t1.dateupdated) 
+0

這隻會顯示一條記錄。我需要顯示所有記錄,以及「否」存在的位置,只顯示最新記錄 – brad115

+0

@ user3040483編輯:我添加查詢:對於每個不返回最新記錄。 – slavoo

+0

謝謝,我只有一張桌子?你提到兩張桌子? – brad115

0

標籤沿着限制1;在查詢結束並按降序排序。