2011-04-08 65 views
0

任何意見將是巨大的:Mysql的分查詢

我運行MIN()查詢在那裏我有同樣的地位賬號和兩個不同的時間戳

例如:

SELECT 
    DATE(`created_at`) as date, 
    account_id, 
    changed_by_id, 
    status 
FROM statuses 
WHERE `changed_to` = 'entered' 
AND account_id = 49794; 

結果:

date   account_id changed_by_id status 
2011-04-05 49794  17    entered 
2011-03-16 49794  18    entered 

當我嘗試提取min(DATE(created_at))GROUP By account_id我沒有得到正確的changed_by_idaccount_iddate

誰能指教一下,我需要通過查詢獲取匹配datechanged_by_id辦?

感謝

+0

這是一個典型的groupwise max查詢。 – Devart 2011-04-08 15:58:46

回答

0

未經測試,但它的日期與此類似

select 
t1.DATE(`created_at`) as date, 
t1.account_id, 
t1.changed_by_id, 
t1.status 
from statuses t1 
where (date(created_at) = (select min(date(created_at)) 
       from statuses t2 
       where t1.account_id=t2.account_id)) 
and t1.account_id = 49794; 
0

訂購的東西,並且只選擇第一行:

 
SELECT 
    DATE(`created_at`) as date, 
    account_id, 
    changed_by_id, 
    status 
FROM statuses 
WHERE `changed_to` = 'entered' 
AND account_id = 49794 
ORDER BY 1 
LIMIT 1; 

這可能不是最優雅選項,但它的理解和效率都很明顯。