2012-07-22 3 views
0

내 DB 항목해 orderBy & GROUPBY 쿼리

id | shop_id | last_changed 
1 |  1 | 7 pm 
2 |  1 | 8 pm 
3 |  2 | 9 pm 
4 |  2 | 8 pm 
5 |  3 | 5 pm 

내 쿼리 내가 단지 ID로 항목을 얻을 수 있어야 :

2, 3, 5 

나는이 수행 할 때

$q = Doctrine_Query::create() 
     ->from('list e') 
     ->groupBy('e.shopname_id') 
     ->orderBy('e.last_changed DESC') 
     ->limit(6) 
     ->fetchArray(); 

I을 도착 : 1, 4, 5. e.last_changed ASC을 사용해도 작동하지 않습니다.

last_changed이고 다른 사람은 shop_id 인 항목 만 원합니다. 내가 어떻게 해?

감사합니다.

답변

2

이 시도 :

$q = Doctrine_Query::create() 
     ->select('e.shopname_id, MAX(e.id) AS id, MAX(e.last_changed) AS last_changed') 
     ->from('list e') 
     ->groupBy('e.shopname_id') 
     ->orderBy('MAX(e.last_changed) DESC') 
     ->limit(6) 
     ->fetchArray();